基于.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,则不能连动)

相关推荐
清水白石00823 分钟前
解构异步编程的两种哲学:从 asyncio 到 Trio,理解 Nursery 的魔力
运维·服务器·数据库·python
资生算法程序员_畅想家_剑魔25 分钟前
Mysql常见报错解决分享-01-Invalid escape character in string.
数据库·mysql
flysh0527 分钟前
如何利用 C# 内置的 Action 和 Func 委托
开发语言·c#
PyHaVolask1 小时前
SQL注入漏洞原理
数据库·sql
ptc学习者1 小时前
黑格尔时代后崩解的辩证法
数据库
代码游侠1 小时前
应用——智能配电箱监控系统
linux·服务器·数据库·笔记·算法·sqlite
!chen1 小时前
EF Core自定义映射PostgreSQL原生函数
数据库·postgresql
霖霖总总1 小时前
[小技巧14]MySQL 8.0 系统变量设置全解析:SET GLOBAL、SET PERSIST 与 SET PERSIST_ONLY 的区别与应用
数据库·mysql
逑之2 小时前
C语言笔记1:C语言常见概念
c语言·笔记·c#
马克学长2 小时前
SSM校园食堂订餐系统531p9(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·ssm 校园食堂订餐系统