基于.NET WinForms 数据CURD功能的实现

使用开发工具 VS 2022 C#,数据库MS SQL SERVER 2019 ,基于NET WinForms,实现数据记录的创建(Create)、更新(Update)、读取(Read)和删除(Delete)等功能。主要控件包括:DataGridView,SqlDataApater , DataTable , bingingSource和DataSet。

1.WinForms界面

2.使用SqlDataApater + DataSet + DataGridView 读取数据

cs 复制代码
private void ReadData()
{
    //数据库连接串
    string strConn = "Data Source=127.0.0.1;Initial Catalog=TEST;Persist Security Info=True;User ID=sa;Password=*********;Encrypt=False";
    SqlConnection conn = null;
    try
    {
        conn = new SqlConnection(strConn);
        conn.Open();//打开数据库
        string sql = "select * from TestTask order by 1";
        SqlDataAdapter sda = new SqlDataAdapter(sql, conn); //创建SqlDataAdapter类的对象
        System.Data.DataSet ds = new System.Data.DataSet();//创建DataSet类的对象
        sda.Fill(ds);//使用SqlDataAdapter对象sda将查新结果填充到DataSet对象ds中
        dataGridView1.DataSource = ds.Tables[0];//设置表格控件的DataSource属性

        //设置数据表格上显示的列标题
        //dataGridView1.Columns[0].HeaderText = "编号";
        //设置数据表格为只读
        dataGridView1.ReadOnly = true;
        //不允许添加行
        dataGridView1.AllowUserToAddRows = false;
        //背景为白色
        dataGridView1.BackgroundColor = Color.White;
        //只允许选中单行
        dataGridView1.MultiSelect = false;
        //整行选中
        dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
    }
    catch (Exception ex)
    {
        MessageBox.Show("加载数据错误!" + ex.Message);
    }
    finally
    {
        if (conn != null)
        {
            conn.Close();//关闭数据库连接
        }
    }
}

3.根据查询条件查询数据

cs 复制代码
if (textBox1.Text != "")//textBox1.Text为查询条件
{
    string strConn = "Data Source=127.0.0.1;Initial Catalog=TEST;Persist Security Info=True;User ID=sa;Password=********;Encrypt=False";
    //创建SqlConnection的实例
    SqlConnection conn = null;
    try
    {
        conn = new SqlConnection(strConn);
        conn.Open();        //打开数据库
        string sql = "select * from TestTask where 检测编号 like '%{0}%'";
        sql = string.Format(sql, textBox1.Text);/填充占位符
        SqlDataAdapter sda = new SqlDataAdapter(sql, conn);//创建SqlDataAdapter类的对象
        DataSet ds = new DataSet();//创建DataSet类的对象
        sda.Fill(ds);//使用SqlDataAdapter对象sda将查新结果填充到DataSet对象ds中
        dataGridView1.DataSource = ds.Tables[0];//设置表格控件的DataSource属性
    }
    catch (Exception ex)
    {
        MessageBox.Show("查询数据出错!" + ex.Message);
    }
    finally
    {
        if (conn != null)
        {
            //关闭数据库连接
            conn.Close();
        }
    }
}

4.使用SqlDataApater + DataTable + bingingSource + DataGridView 读取数据

cs 复制代码
string strConn = "Data Source=127.0.0.1;Initial Catalog=TEST;Persist Security Info=True;User ID=sa;Password=********;Encrypt=False";
SqlConnection con = null;
con = new SqlConnection(strConn);
con.Open();
string strSql = "select * from testtask";
SqlDataAdapter ada = new SqlDataAdapter(strSql, con);
DataTable myTable = new DataTable();
ada.Fill(myTable);

bindingSource1.DataSource = myTable;

this.dataGridView1.DataSource = bindingSource1;

5TableAdapter、Dataset与BindingSource的关系

TableAdapter:沟通物理数据库(database)和内存数据库(dataset),提供select,update,insert,delete四大操作。

BingdingSource:将内存数据表(datatable)绑定到控件(control),并为内存数据表(datatable)提供过滤条件(Filter)和排序(Sort)两功能。注意两点:

1、可以用一个BindingSource绑定多个控件,实现不同控件数据的联动。例如,有一DataTable(学号、姓名、成绩、备注),通过一个BindingSource,将学号、姓名、成绩绑定到一个Datagridview,将备注绑定到一个Lable,在datagridview里选中不同的学生,Lable将会出现相应学生的备注信息。(如果datagridview和Lable用两个不同的BindingSource,则不能连动)

相关推荐
薛定谔的算法1 小时前
phoneGPT:构建专业领域的检索增强型智能问答系统
前端·数据库·后端
Databend2 小时前
Databend 亮相 RustChinaConf 2025,分享基于 Rust 构建商业化数仓平台的探索
数据库
得物技术3 小时前
破解gh-ost变更导致MySQL表膨胀之谜|得物技术
数据库·后端·mysql
小码编匠4 小时前
WPF 中的高级交互通过右键拖动实现图像灵活缩放
后端·c#·.net
追逐时光者4 小时前
一个基于 .NET 开源、简易、轻量级的进销存管理系统
后端·.net
Raymond运维8 小时前
MariaDB源码编译安装(二)
运维·数据库·mariadb
沢田纲吉8 小时前
🗄️ MySQL 表操作全面指南
数据库·后端·mysql
唐青枫11 小时前
C#.NET 定时任务与队列利器:Hangfire 完整教程
c#·.net
hez201017 小时前
Runtime Async - 步入高性能异步时代
c#·.net·.net core·clr
RestCloud1 天前
SQL Server到Hive:批处理ETL性能提升30%的实战经验
数据库·api