C# Access数据库增删查改的简单方法
引用集:
using system.data.oledb;
static string exepath = system.environment.currentdirectory;//本程序所在路径
//创建连接对象
oledbconnection conn = new oledbconnection("provider=microsoft.jet.oledb.4.0;data source=" + exepath + @"\文件名.mdb");
1.和查询有关的,如获取表数据(包括所谓的“刷新”和“连接数据库”)、按条件查询,都是用的 oledbdataadapter
private void 获取数据表/查询()
{
conn.open();
//获取数据表
//string sql = "select * from 表名 order by 字段1";
//查询
string sql = "select * from 表名 where 字段2="...;
oledbdataadapter da = new oledbdataadapter(sql, conn); //创建适配对象
datatable dt = new datatable(); //新建表对象
da.fill(dt); //用适配对象填充表对象
datagridview1.datasource = dt; //将表对象作为datagridview的数据源
conn.close();
}
其中“获取数据表”属于频繁被嵌套调用的方法,所以应去掉头尾的conn.open和close,以免和其他方法中的open发生累加从而报错。
2.凡涉及修改表数据的,如增、删、保存修改,都是用 oledbcommand
private void 增/删/改()
{
conn.open();
//增
string sql = "insert into 表名(字段1,字段2,字段3,字段4)values(...)";
//删
//string sql = "delete from 表名 where 字段1="...;
//改
//string sql = "update student set 学号=" ...;
oledbcommand comm = new oledbcommand(sql, conn);
comm.executenonquery();
conn.close();
}
其中executenonquery被成功更改的元组数量,所以comm.executenonquery()也可以改造为判断,提示用户成功或失败。
int i = comm.executenonquery();
if (i > 0)
{
messagebox.show("添加数据成功!", "操作提示", messageboxbuttons.ok, messageboxicon.information);
}
else
{
messagebox.show("添加失败!", "操作提示", messageboxbuttons.ok, messageboxicon.error);
}
3.对datagridview中数据更改的保存
private void savedata2()
{
datagridview1.endedit();
string sql = "select * from 表名";
oledbdataadapter da = new oledbdataadapter(sql, conn);
oledbcommandbuilder bld = new oledbcommandbuilder(da);
da.updatecommand = bld.getupdatecommand();
//把datagridview赋值给datatbale。(datatable)的意思是类型转换,前提是后面紧跟着的东西要能转换成datatable类型
datatable dt = (datatable)datagridview1.datasource;
da.update(dt);
dt.acceptchanges();
conn.close();
}
上一篇: Kali学习笔记11:僵尸扫描案例