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

news2025/1/31 2:57:37

目录

题目:

 效果图:

 数据库:

做法:

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];



            }



        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/631790.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Qt Button实现按钮长按事件

Qt Button实现按钮长按事件 背景查资料第3种widget.cpp源文件 最好方法小结 背景 最近项目遇到一个需求,通过鼠标按钮长按一直发数据,鼠标松开立即离开。 想了一会儿大概有了几种思路(仅仅是思路,不一样可以实现) 1.重…

OBS Studio 29.1.2 正式发布

导读OBS Studio 是一款免费且开源的用于视频录制以及直播串流的软件,提供实时高性能的视频 / 音频捕捉与混合,以及无限的场景模式帮助用户通过自定义实现无缝转换。 OBS Studio 29.1.2 现已发布,具体更新内容包括: 在 Windows 设…

[7]PCB设计实验|认识常用元器件|电容器|19:00~19:30

目录 一、电容器的识别 电容的应用 1. 电容有通交流阻隔直流电的作用 2. 有滤波、耦合、旁路作用等 3. 有些电容是有极性,有些是没有极性 二、常见电容器 1. 贴片电容 a、材质瓷片 b、材质钽介质 c、材质电解质 2. 手插电容 a、瓷片电容 b、聚脂电容 …

【计算机组成与体系结构Ⅰ】课程设计——基于Logisim的模型计算机设计

基于Logisim的模型计算机设计 一、实验目的 基于Logisim软件,根据一个模型指令系统,在逐步学习和了解计算机组成各部分逻辑组成和各部分互联的基础上,深入理解课程中的知识点,利用此软件设计并实现一个模拟的8位模型计算机原型。…

NumPy库的学习

本文主要记录的是笔者在B站自学Numpy库的学习笔记。 引入numpy库 import numpy as np矩阵的创建 创建一个二行三列的矩阵。 array np.array([[1,2,3],[2,3,4]])查看array的行数、形状、元素数量 print("number of dim:",array.ndim) print("shape:"…

Sui x KuCoin Labs夏季黑客松|6月8日Suiet Workshop

由Sui和KuCoin Labs联合主办的夏季黑客松正如火如荼的报名中。了解黑客松详情:Sui与KuCoin Labs联合推出夏季黑客松,奖池高达28.5万美金! 👉 黑客松官方网站:Sui x KuCoin Labs Summer Hackathon 活动期间&#xff0…

2023年前端面试汇总-CSS

1. CSS基础 1.1. CSS选择器及其优先级 对于选择器的优先级: 1. 标签选择器、伪元素选择器:1; 2. 类选择器、伪类选择器、属性选择器:10; 3. id 选择器:100; 4. 内联样式:1000&a…

基于BP神经网络对MNIST数据集检测识别(numpy版本)

基于BP神经网络对MNIST数据集检测识别 1.作者介绍2.BP神经网络介绍2.1 BP神经网络 3.BP神经网络对MNIST数据集检测实验3.1 读取数据集3.2 前向传播3.3 损失函数3.4 构建神经网络3.5 训练3.6 模型推理 4.完整代码 1.作者…

EasyX实现简易贪吃蛇

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

【Python开发】FastAPI 09:middleware 中间件及跨域

FastAPI 提供了一些中间件来增强它的功能,类似于 Spring 的切面编程,中间件可以在请求处理前或处理后执行一些操作,例如记录日志、添加请求头、鉴权等,跨域也是 FastAPI 中间件的一部分。 目录 1 中间件 1.1 创建中间件 1.2 使…

IDEA日常配置和操作小结

✅作者简介:大家好,我是Cisyam,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Cisyam-Shark的博客 💞当前专栏: IDEA专栏 ✨特色专栏&…

算法刷题-数组-长度最小的子数组

209.长度最小的子数组 力扣题目链接 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。 示例: 输入:s 7, …

电子元器件解析之电容(一)——定义与性能参数

下篇文章:电子元器件解析之电容(二)——电容分类与应用场景:https://blog.csdn.net/weixin_42837669/article/details/131142767 摘要 电容是最基本的电子元器件之一,本文介绍了电容的定义,并总结了电容的各个性能参数&#xff0c…

攻防世界—easyupload

2023.6.10 又试了一下 他好像会检测php字段,所以一开始的aaa.jpg怎么也传不上去,用a.jpg那种就可以了 根据题目和页面我们可以猜到这应该是一个利用文件上传漏洞,利用一句话木马来获取服务器上保存的flag保险起见右键查看源代码 可以发现毫无…

基础实验篇 | RflySim底层飞行控制算法开发系列课程总体介绍

本讲主要介绍多旋翼的特点及选用多旋翼作为实验平台的原因、对于无人系统教育的一些新需求、RflySim平台对于飞控的底层控制算法的开发优势、本期平台课程的设置、以及如何开发自驾仪系统。 相较于固定翼和直升机,多旋翼具有机械结构简单、 易维护的优点。以四旋翼…

使用 Pycharm 调试远程代码

文章目录 背景同步远程代码Interpreter注意点 背景 工作机是一台 Windows 电脑,而很多时候需要在 Mac 电脑上编码、配合 iPhone 模拟器,所以我以前是用 VNC 或者向日葵来远程 Mac 来编程,其实还能接受,但是最让我不舒服的是快捷键…

MySQL表操作:提高数据处理效率的秘诀(进阶)(2)

💕“学习难免有坎坷,重要的是你能尽力而为,持之以恒。”💕 🐼作者:不能再留遗憾了🐼 🎆专栏:MySQL学习🎆 🚗本文章主要内容:MySQL表操…

K Shortest Paths算法之Yen algorithm

Yen’s算法是一种在图论中用于计算单源K最短无环路径的算法,该算法由Jin Y. Yen在1971年提出。这个算法的时间复杂度和空间复杂度都取决于用于计算偏离路径的最短路径算法。如果使用Dijkstra算法,那么时间复杂度为O(KN3),采用Fibonacci堆计算…

Elasticsearch:Explain API - 如何计算分数

你想了解你的文档为何获得该分数吗? 文档 让我们通过一组示例文档来了解 Explain API。 就我而言,我将使用一小部分电影名言。 POST _bulk { "index" : { "_index" : "movie_quotes" } } { "title" : "T…

从malloc到跑路

当我还是一个懵懂无知的少年时,内心也曾升起这样的疑问这内存咋来的捏❓ 有个帅气的小哥哥给我甩了一篇博客:对,就是这篇,看完后总感觉意犹未尽,似乎少了点什么的样子。。。 还是从malloc开始 如果申请的内存小于64B…