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

相关推荐
hyx0412194 分钟前
mysql第5次作业---hyx
数据库·mysql
Full Stack Developme8 分钟前
java.net.http 包详解
java·http·.net
Daniel大人8 分钟前
关于sqlite
数据库·sqlite
hixiong12320 分钟前
C# OpenCVSharp实现Hand Pose Estimation Mediapipe
开发语言·opencv·ai·c#·手势识别
nsjqj34 分钟前
MySQL数据库:表的增删改查 [CRUD](进阶)【一】
数据库·mysql
baivfhpwxf202339 分钟前
SQL Server 服务端如何在其他电脑连接
c#
她说..1 小时前
Redis实现未读消息计数
java·数据库·redis·缓存
xiayehuimou1 小时前
Redis核心技术与实战指南
数据库·redis·缓存
喵叔哟1 小时前
64.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--新增功能--预算报表
微服务·架构·.net
Dm_dotnet1 小时前
WPF/C#:使用Microsoft Agent Framework框架创建一个带有审批功能的终端Agent
c#