前言
第二篇使用Ado.Net,其实这个方式是没什么可写的,因为大家如果有学习到数据库的话,这种方式理论上是必然要用到过的,当然,如果你直接跳过了最基础的方式而直接使用了ORM,那你要少好多学习的乐趣,哈哈哈,不过我相信,你总会遇到这样一个项目或者需求,让你回到这种最原始而又强大的方式。
开发环境:.NET Framework版本:4.8
开发工具:Visual Studio 2022
实现步骤
这种方式只要引入对应的数据库连接的DLL就行,所以只需要通过Nuget添加
System.Data.SQLite
即可添加以下命名空间
using System.Data.SQLite;
定义数据库的连接字符串以及
dataGridView
的绑定数据源,由于Ado.Net对DataTable
数据源非常友好,所以这里换成DataTable
其实我觉得dataGridView
对于DataTable
的友好程度也要超过BindingList
readonly string dbConnStr = "Data Source=" + Application.StartupPath + "\\data.db";
DataTable bindTable = new DataTable();
查询
protected override void OnClick(EventArgs e)
{
base.OnClick(e);
Checked = !Checked;
}
新增
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);
}
}
编辑
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);
}
}
删除
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);
}
实现效果
-
技术群:添加小编微信并备注进群
小编微信:mm1552923
公众号:dotNet编程大全