当前位置: 首页 > news >正文

C#可视化 家用轿车信息查询系统(具体做法及全部代码)

目录

题目:

 效果图:

 数据库:

做法:

combobox值更新

 查询按钮功能(非空验证,查询数据)

datagirdview设置

全部代码: 

 DBHelper类

 From1主窗体代码


题目:

 

 

 效果图:

                                               

 数据库:

 

 

做法:

combobox值更新

当comboBox1.text的文本为排量和售价时,显示两个文本框,其他情况仅显示一个文本框。每次选择完节点后两个文本框的值设置为空

 

 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e){if (comboBox1.Text=="品牌"||comboBox1.Text == "型号"|| comboBox1.Text == "变速箱"){textBox1.Text= "";textBox2.Text = "";label4.Hide();textBox2.Hide();}if (comboBox1.Text == "排量"|| comboBox1.Text == "售价"){textBox1.Text = "";textBox2.Text = "";label4.Show();textBox2.Show();}}

 查询按钮功能(非空验证,查询数据)

非空验证:当点击查询按钮时,查询种类combobox不能为空,当combobox有值时,如果查询种类为品牌、型号、变速箱则第一个不能为空,如果查询种类为排量、售价时两个文本框都不能为空

 private void button1_Click(object sender, EventArgs e){//comboBox非空验证if (comboBox1.Text==""){MessageBox.Show("请选择查询种类!");return;}//textbox非空验证if (comboBox1.Text=="排量"|| comboBox1.Text == "售价" ){if (textBox1.Text==""||textBox2.Text==""){MessageBox.Show("查询条件输入不完整!");return;}}if (comboBox1.Text == "品牌" || comboBox1.Text == "型号" || comboBox1.Text == "变速箱"){if (textBox1.Text == "" ){MessageBox.Show("查询条件输入不完整!");return;}}

查询数据: 

查询种类为品牌、型号、变速箱时,定义字符串用来存数据库中的对应列名,列名有了后根据textbox进行模糊查询并显示就好了。

查询种类为排量、售价时,定义字符串用来存数据库中的对应列名,列名有了后根据textbox1和textbox2进行between and区间查询就好了。

因为排量时小数,定义变量直接就用的double类型:

double qi = Convert.ToDouble(textBox1.Text);

 double z = Convert.ToDouble(textBox2.Text);

//如果是这三种情况,拿到选项对应数据库中的列进行查询if (comboBox1.Text == "品牌" || comboBox1.Text == "型号" || comboBox1.Text == "变速箱") {string x = "";if (comboBox1.Text=="品牌"){x = "brand";}else if (comboBox1.Text == "型号"){x = "type";}else{x = "gearbox";}string sql = string.Format("select * from tb_car where {0} like '%{1}%'",x,textBox1.Text);this.dataGridView1.DataSource= DBHelper.ds(sql).Tables[0];}//如果是这两种情况,拿到选项对应数据库中的列进行查询else if (comboBox1.Text == "排量" || comboBox1.Text == "售价"){string tiaoJian = "";if (comboBox1.Text=="排量"){tiaoJian = "discharge";}else{tiaoJian = "price";}double qi = Convert.ToDouble(textBox1.Text);double z = Convert.ToDouble(textBox2.Text);string sql = string.Format("select * from tb_car where {0} between {1} and {2}", tiaoJian,qi,z);this.dataGridView1.DataSource = DBHelper.ds(sql).Tables[0];}else{string sql= "select * from tb_car";this.dataGridView1.DataSource=  DBHelper.ds(sql).Tables[0];}

datagirdview设置

 

首先设置datagridview的这三个属性

    1. AutoSizeColumsMode = Fill 设置每列单元格宽度平铺

    1. RowHeadersVisible = False 取消列表最左侧列显示

    1. SelectionMode = FullRowSelect 设置单元格选中模式为整行选中

 

全部代码: 

 DBHelper类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;
namespace WindowsFormsApp1
{internal class DBHelper{public static string connstr = "server=.;database=CarDBj;uid=sa;pwd=123456";public static SqlConnection conn = null;public static void init() {if (conn==null){conn=new SqlConnection(connstr);}conn.Close();conn.Open();}public static bool noqery(string sql) { init();SqlCommand cod=new SqlCommand(sql,conn);if (cod.ExecuteNonQuery()>0){conn.Close();return true;}else{conn.Close();return false;}}public static DataSet ds(string sql) {init();DataSet ds = new DataSet();SqlDataAdapter t = new SqlDataAdapter(sql ,conn);t.Fill(ds);conn.Close();return ds;}}
}

 From1主窗体代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace WindowsFormsApp1
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){string sql = "select * from  tb_car";this.dataGridView1.DataSource=   DBHelper.ds(sql).Tables[0];label4.Hide();textBox2.Hide();}private void comboBox1_SelectedIndexChanged(object sender, EventArgs e){if (comboBox1.Text=="品牌"||comboBox1.Text == "型号"|| comboBox1.Text == "变速箱"){textBox1.Text= "";textBox2.Text = "";label4.Hide();textBox2.Hide();}if (comboBox1.Text == "排量"|| comboBox1.Text == "售价"){textBox1.Text = "";textBox2.Text = "";label4.Show();textBox2.Show();}}private void button1_Click(object sender, EventArgs e){//comboBox非空验证if (comboBox1.Text==""){MessageBox.Show("请选择查询种类!");return;}//textbox非空验证if (comboBox1.Text=="排量"|| comboBox1.Text == "售价" ){if (textBox1.Text==""||textBox2.Text==""){MessageBox.Show("查询条件输入不完整!");return;}}if (comboBox1.Text == "品牌" || comboBox1.Text == "型号" || comboBox1.Text == "变速箱"){if (textBox1.Text == "" ){MessageBox.Show("查询条件输入不完整!");return;}}//如果是这三种情况,拿到选项对应数据库中的列进行查询if (comboBox1.Text == "品牌" || comboBox1.Text == "型号" || comboBox1.Text == "变速箱") {string x = "";if (comboBox1.Text=="品牌"){x = "brand";}else if (comboBox1.Text == "型号"){x = "type";}else{x = "gearbox";}string sql = string.Format("select * from tb_car where {0} like '%{1}%'",x,textBox1.Text);this.dataGridView1.DataSource= DBHelper.ds(sql).Tables[0];}//如果是这两种情况,拿到选项对应数据库中的列进行查询else if (comboBox1.Text == "排量" || comboBox1.Text == "售价"){string tiaoJian = "";if (comboBox1.Text=="排量"){tiaoJian = "discharge";}else{tiaoJian = "price";}double qi = Convert.ToDouble(textBox1.Text);double z = Convert.ToDouble(textBox2.Text);string sql = string.Format("select * from tb_car where {0} between {1} and {2}", tiaoJian,qi,z);this.dataGridView1.DataSource = DBHelper.ds(sql).Tables[0];}else{string sql= "select * from tb_car";this.dataGridView1.DataSource=  DBHelper.ds(sql).Tables[0];}}}
}

相关文章:

C#可视化 家用轿车信息查询系统(具体做法及全部代码)

目录 题目: 效果图: 数据库: 做法: combobox值更新 查询按钮功能(非空验证,查询数据) datagirdview设置 全部代码: DBHelper类 From1主窗体代码 题目: 效果图&#…...

Nautilus Chain全球行分享会,上海站圆满举办

在北京时间 6 月 9 日,由 Nautilus Chain 主办的“Layer3 模块化区块链的发展探讨”为主题的全球行活动,在上海顺利举办,本次分享会联合主办方还包 括 Stanford Blockchain Accelerator、Zebec Protocol、Tiger VC DAO、Crypto PHD、Rootz La…...

day50_mybatis

今日内容 0 复习昨日 一、分页插件 二、ORM映射【重点】 三、多表联查 【重点】 四、动态SQL 【重点】 五、$和# 零、复习昨日 mybatis orm框架,作用于持久层,高效开发,只关注sql,其他不用关心 思考MyBatis到底帮你省了哪些事情? jdbc第四步sql自己编写之外,其他mybatis都做了…...

第十一届“创业江苏”科技创业大赛正式启动

为深入实施创新驱动战略, 推进高水平科技自立自强,强化企业创新主体地位,加速推动创新要素向企业集聚,促进科技和金融深度融合,优化科技创新创业生态,吸引优秀创业团队及企业到苏州创新发展,根据…...

EasyX实现简易贪吃蛇

📝个人主页:认真写博客的夏目浅石. 📣系列专栏:夏目的C语言宝藏 文章目录 前言一、头文件包含二、创建蛇与食物的结构体三、游戏的初始化四、游戏的绘画事件五、蛇的移动事件六、输入方向七、生成食物八、吃食物九、游戏失败的判定…...

Linux下ElasticSearch7.9.2安装配置(包含服务器配置、启动停止脚本、开放端口和elasticsearch-head插件的使用)

Linux下ElasticSearch7.9.2安装配置 前言1.下载安装1.1 使用wget的方式下载1.2 官网下载 2.上传到服务器并解压3.修改es配置文件3.1 es目录简介3.2 修改配置文件 4. 创建用户并赋权5. 服务器修改配置5.1 修改文件句柄数和线程数5.2 关闭swapping5.3 修改虚拟内存 6. 启动es6.1 …...

JS 之 事件Event对象详解(属性、方法、自定义事件)

一、Event对象 1、简介 ​ 事件event对象是指在浏览器中触发事件时,浏览器会自动创建一个event对象,其中存储了本次事件相关的信息,包括事件类型、事件目标、触发元素等等。浏览器创建完event对象之后,会自动将该对象作为参数传…...

65寸电视长宽多少厘米

65寸电视的长和宽分别是多少 65寸电视机尺寸是不确定的,要看电视的品牌和具体型号。一般来说,16:9屏幕比例下,65英寸电视的长宽分别为143.90厘米和80.94厘米。电视尺寸指的是电视屏幕对角线的长度,目前电视尺寸普遍以英…...

Python爬取影评并进行情感分析和数据可视化

Python爬取影评并进行情感分析和数据可视化 文章目录 Python爬取影评并进行情感分析和数据可视化一、引言二、使用requestsBeautifulSoup进行影评的爬取1、分析界面元素2、编写代码 三、情感分析1、数据预处理2、情感分析3、数据可视化 一、引言 前几天出了《航海王&#xff1…...

ubuntu22.04.2安装onlyoffice(不更改默认端口版)

目录 一、配置阿里源 二、postgresql数据库 (一)安装postgresql (二)创建postgresql数据库和用户 三、安装 rabbitmq 四、安装nginx-extras 五、安装ONLYOFFICE Docs (一)Add GPG key &#xff08…...

企业如何有效制定企业信息化发展规划?(附信息化模板)

如何有效制定企业信息化发展规划?企业信息化发展规划是一个宏大而又复杂的命题,这篇来掰开揉碎讲一下企业应该如何有效制定信息化发展规划。 这里不给大家灌鸡汤,也不给大家画大饼,就说些实在的。 如果你想找经验方法&#xff0…...

计算机网络填空题

我会写下自己的答案和理解 希望自己可用在学习中体会到快乐,而不是麻木。 1. 网络协议三要素中语义是指 需要发出何种控制信息,完成何种动作以及做出何种响应 1.在计算机网络中要做到有条不紊的交换数据,就必须遵守一些事…...

【HashMap】为什么用自定义的类做HashMap的Key时需要重写hashcode方法和equals方法

【HashMap】为什么用自定义的类做HashMap的Key时需要重写hashcode方法和equals方法 【一】为什么有这个问题【二】Object类的中的hashcode方法和equals方法【三】重写hashcode【四】重写equals方法【五】hashmap中使用hashcode和equals方法 【一】为什么有这个问题 因为HashMa…...

Flutter自定义对话框返回相关问题汇总

Flutter自定义对话框返回相关问题汇总,详细解释 Flutter是一款流行的移动应用开发框架,它提供了很多内置的对话框,但是有时候我们需要自定义对话框来满足特定需求。在使用自定义对话框时,可能会遇到一些问题,下面是一…...

002docker 安装

官网安装https://docs.docker.com/engine/install/ 系统要求 Centos7 Linux 内核:官方建议 3.10 以上查看Linux内核版本 用于打印当前系统的相关信息(内核版本号,硬件架构,主机名称和操作系统类型等 cat /proc/version uname -a 更新YUM源 生产环境中此步操作…...

软件工程师,全面思考问题很重要

为什么要全面思考问题 □ 在软件开发中,对一个问题思考得越全面,编写出的代码就会越严谨,出现bug的几率就越低;反之,如果没有对一个问题进行全面而深入的思考,编写出的代码就会漏洞百出,出现各种莫名其妙、无法复现的bug的几率也就急剧增加。 □ 软件就是数据加逻辑,数…...

1.Apollo部署-linux

一.官方文档 https://www.apolloconfig.com/#/zh/deployment/quick-start-docker 二.环境准备 1.MySql 5.6.51.单独服务器192.168.2.13 https://downloads.mysql.com/archives/installer/ 2.JDK 1.8.X https://www.oracle.com/java/technologies/downloads/ 三.Apollo部署…...

【HTML】form标签

<form> 标签用于创建 HTML 表单&#xff0c;它是用于收集用户输入的重要元素。表单可以包含各种输入字段、按钮和其他交互元素&#xff0c;用于向服务器发送用户输入数据。 下面是一个简单的 <form> 标签的示例&#xff1a; <form action"/submit-form&q…...

基于SPAD / SiPM技术的激光雷达方案

激光雷达(LiDAR)是一种测距技术&#xff0c;近年来越来越多地用于汽车先进驾驶辅助系统(ADAS)、手势识别和3D映射等应用。尤其在汽车领域&#xff0c;随着传感器融合的趋势&#xff0c;LiDAR结合成像、超声波、毫米波雷达&#xff0c;互为补足&#xff0c;为汽车提供全方位感知…...

使用MATLAB工具模拟单/双频GPS和载波相位差分GPS

第一部分&#xff1a;介绍和背景 在我们的日常生活中&#xff0c;全球定位系统&#xff08;GPS&#xff09;发挥了重要的作用。无论是在我们的手机中&#xff0c;还是在各种应用中&#xff0c;GPS都是实现精确位置定位的关键技术。然而&#xff0c;有时候我们可能需要对GPS进行…...

在rocky linux 9.5上在线安装 docker

前面是指南&#xff0c;后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

深度学习习题2

1.如果增加神经网络的宽度&#xff0c;精确度会增加到一个特定阈值后&#xff0c;便开始降低。造成这一现象的可能原因是什么&#xff1f; A、即使增加卷积核的数量&#xff0c;只有少部分的核会被用作预测 B、当卷积核数量增加时&#xff0c;神经网络的预测能力会降低 C、当卷…...

WPF八大法则:告别模态窗口卡顿

⚙️ 核心问题&#xff1a;阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程&#xff0c;导致后续逻辑无法执行&#xff1a; var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题&#xff1a…...

论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving

地址&#xff1a;LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂&#xff0c;正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…...

解析两阶段提交与三阶段提交的核心差异及MySQL实现方案

引言 在分布式系统的事务处理中&#xff0c;如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议&#xff08;2PC&#xff09;通过准备阶段与提交阶段的协调机制&#xff0c;以同步决策模式确保事务原子性。其改进版本三阶段提交协议&#xff08;3PC&#xf…...

数据库正常,但后端收不到数据原因及解决

从代码和日志来看&#xff0c;后端SQL查询确实返回了数据&#xff0c;但最终user对象却为null。这表明查询结果没有正确映射到User对象上。 在前后端分离&#xff0c;并且ai辅助开发的时候&#xff0c;很容易出现前后端变量名不一致情况&#xff0c;还不报错&#xff0c;只是单…...

GeoServer发布PostgreSQL图层后WFS查询无主键字段

在使用 GeoServer&#xff08;版本 2.22.2&#xff09; 发布 PostgreSQL&#xff08;PostGIS&#xff09;中的表为地图服务时&#xff0c;常常会遇到一个小问题&#xff1a; WFS 查询中&#xff0c;主键字段&#xff08;如 id&#xff09;莫名其妙地消失了&#xff01; 即使你在…...