Winform 使用Ado.Net操作数据库

c0b9af6ec83adc46a5e616c1805b8025.png

前言

40f5a9aeb4ee3281b2839f5b0c9c54a7.png

57e801e40b574018fa7399480e267d36.png

    第二篇使用Ado.Net,其实这个方式是没什么可写的,因为大家如果有学习到数据库的话,这种方式理论上是必然要用到过的,当然,如果你直接跳过了最基础的方式而直接使用了ORM,那你要少好多学习的乐趣,哈哈哈,不过我相信,你总会遇到这样一个项目或者需求,让你回到这种最原始而又强大的方式。

810988af340aab71758858478edb3822.png

f6b0124ed9467f35c42a6c9b1af1154f.gif

7aabf9b3fee55ba4aa19800b4093eafc.jpeg

开发环境:.NET Framework版本:4.8

开发工具:Visual Studio 2022

826501f81a245f40ef92384604a18e65.png

实现步骤

a7b00f70c1f6c8437615ab30864d41ea.png

  1. 这种方式只要引入对应的数据库连接的DLL就行,所以只需要通过Nuget添加System.Data.SQLite即可

  2. 添加以下命名空间

using System.Data.SQLite;
  1. 定义数据库的连接字符串以及dataGridView的绑定数据源,由于Ado.Net对DataTable数据源非常友好,所以这里换成DataTable其实我觉得dataGridView对于DataTable的友好程度也要超过BindingList

readonly string dbConnStr = "Data Source=" + Application.StartupPath + "\\data.db";
        DataTable bindTable = new DataTable();
  1. 查询

protected override void OnClick(EventArgs e)
        {
            base.OnClick(e);
            Checked = !Checked;
        }
  1. 新增

private void btn_add_Click(object sender, EventArgs e)
        {
           Form2 form = new Form2();
            if (form.ShowDialog() == DialogResult.OK)
            {
                using (SQLiteConnection dbConn = new SQLiteConnection(dbConnStr))
                {
                    dbConn.Open();
                    SQLiteCommand cmd = new SQLiteCommand("insert into t_user(name,age) values(@name,@age)", dbConn);
                    cmd.Parameters.Add(new SQLiteParameter("name", form.UserName));
                    cmd.Parameters.Add(new SQLiteParameter("age", new Random().Next(1, 100)));
                    cmd.ExecuteNonQuery();
                }
                MessageBox.Show("添加成功");
                btn_query_Click(null, null);
            }
        }
  1. 编辑

private void btn_edit_Click(object sender, EventArgs e)
        {
           if (dataGridView1.CurrentRow == null)
            {
                MessageBox.Show("未选中任何行");
                return;
            }
            int index = dataGridView1.CurrentRow.Index;
            Form2 form = new Form2();
            form.UserName = dataGridView1[1,index].Value.ToString();
            if (form.ShowDialog() == DialogResult.OK)
            {
                using (SQLiteConnection dbConn = new SQLiteConnection(dbConnStr))
                {
                    dbConn.Open();
                    SQLiteCommand cmd = new SQLiteCommand("update t_user set name=@name where id=@id", dbConn);
                    cmd.Parameters.Add(new SQLiteParameter("name", form.UserName));
                    cmd.Parameters.Add(new SQLiteParameter("id", dataGridView1[0, index].Value));
                    cmd.ExecuteNonQuery();
                }
                MessageBox.Show("修改成功");
                btn_query_Click(null, null);
            }
        }
  1. 删除

private void btn_remove_Click(object sender, EventArgs e)
        {
            if (dataGridView1.CurrentRow == null)
            {
                MessageBox.Show("未选中任何行");
                return;
            }
            int index = dataGridView1.CurrentRow.Index;
            using (SQLiteConnection dbConn = new SQLiteConnection(dbConnStr))
            {
                dbConn.Open();
                SQLiteCommand cmd = new SQLiteCommand("delete from t_user where id=@id", dbConn);
                cmd.Parameters.Add(new SQLiteParameter("id", dataGridView1[0, index].Value));
                cmd.ExecuteNonQuery();
            }
            MessageBox.Show("删除成功");
            btn_query_Click(null, null);
  }

a325854c20b0eb72f8597fd56ce5c663.png

实现效果

f6fb261997c6184e6adc9fd51ee192ab.png

4a5d5eaae157c75bbebcbedf5daafb97.gif

-

技术群:添加小编微信并备注进群

小编微信:mm1552923   

公众号:dotNet编程大全    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值