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

所属分类: 软件编程 / C#教程 阅读数: 142
收藏 0 赞 0 分享

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

更多精彩内容其他人还在看

C# 大小写转换(金额)实例代码

C# 大小写转换(金额)实例代码,需要的朋友可以参考一下
收藏 0 赞 0 分享

C# WinForm中Panel实现用鼠标操作滚动条的实例方法

由于在WinForm中Panel不能直接响应鼠标的滚动事件,只好采用捕获窗体的滚动事件。
收藏 0 赞 0 分享

C#访问应用程序配置文件的方法

C#访问应用程序配置文件的方法,需要的朋友可以参考一下
收藏 0 赞 0 分享

C#读写文件的方法汇总

C#读写文件的方法汇总,需要的朋友可以参考一下
收藏 0 赞 0 分享

C#计算代码执行时间的方法

在一些测试工作时我们需要获得高精度的代码执行时间以比较其效率。
收藏 0 赞 0 分享

C# 动画窗体(AnimateWindow)的小例子

C# 动画窗体(AnimateWindow)的小例子,需要的朋友可以参考一下
收藏 0 赞 0 分享

C# zxing二维码写入的实例代码

C# zxing二维码写入的实例代码,需要的朋友可以参考一下
收藏 0 赞 0 分享

c#判断输入的是不是数字的小例子

c#判断输入的是不是数字的小例子,需要的朋友可以参考一下
收藏 0 赞 0 分享

c# 深拷贝与浅拷贝的区别分析及实例

浅拷贝(影子克隆):只复制对象的基本类型,对象类型,仍属于原来的引用. 深拷贝(深度克隆):不紧复制对象的基本类,同时也复制原对象中的对象.就是说完全是新对象产生的.
收藏 0 赞 0 分享

C#利用com操作excel释放进程的解决方法

最近利用Microsoft.Office.Interop.Excel.Application读取一个excel后,进程中一直存在excel,在网上找了一阵子,其中有几个解决方案
收藏 0 赞 0 分享
查看更多