欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C# Access数据库增删查改的简单方法

程序员文章站 2024-02-18 22:28:22
引用集:using system.data.oledb;复制代码 代码如下:static string exepath = system.environment.curre...

引用集:
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();
}