c#WinForm操作Access数据库

preview
3星 · 超过75%的资源 需积分: 0 20 下载量 175 浏览量 更新于2013-08-06 收藏 36KB DOC 举报
在C# WinForm应用中操作Access数据库涉及到对ADO.NET组件的使用,主要是通过OleDbConnection、OleDbCommand、OleDbDataAdapter等对象来实现数据的读取、插入、更新和删除。下面将详细介绍如何进行此类操作。 我们需要引用必要的命名空间: ```csharp using System; using System.Data; using System.Data.OleDb; ``` 这些命名空间提供了对数据库操作所需的基本类。 在示例代码中,`Form1`是WinForm的应用窗口,`button1_Click`方法是当用户点击按钮时触发的事件处理程序。这个例子演示了在用户输入信息后,检查数据是否已存在于数据库,并根据用户确认保存新数据。 1. **连接字符串(Connection String)**: 在代码中,`consqlserver`是用于连接Access数据库的字符串,这里使用的提供者是`Microsoft.Jet.OLEDB.4.0`,适用于早期的Access版本(如Access 2003及更早)。对于Access 2007及以后的版本,应使用`Microsoft.ACE.OLEDB.12.0`。连接字符串中的`Data source`指定数据库文件的位置,例如: ``` string consqlserver = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\C#\\Program\\TT\\GLXT.accdb"; ``` 2. **查询数据**: 使用`OleDbDataAdapter`来执行SQL查询并填充`DataSet`。在示例中,查询语句是`SELECT * FROM user WHERE ID='...';`,用于检查给定的ID是否已存在于`user`表中。创建`OleDbDataAdapter`时,将查询语句和连接对象作为参数传递: ```csharp OleDbDataAdapter da = new System.Data.OleDb.OleDbDataAdapter(strsql, con); da.Fill(ds); ``` `ds`是`DataSet`对象,它将存储查询结果。 3. **数据验证**: 如果`ds.Tables[0].Rows.Count > 1`,表示数据库中已经存在相同的ID,会弹出错误提示。 4. **插入数据**: 如果用户确认要保存数据,将构造一个`INSERT INTO` SQL语句,将文本框中的值插入到相应的列中。注意,SQL语句中的占位符要用方括号包围,如`VALUES ({0}, {1}, {2}, {3})`。然后创建一个新的`OleDbConnection`和`OleDbCommand`对象,设置命令文本为`strsql`,并执行命令: ```csharp OleDbConnection cons = new System.Data.OleDb.OleDbConnection(consqlserver); OleDbCommand cmd = new System.Data.OleDb.OleDbCommand(strsql, cons); cmd.ExecuteNonQuery(); ``` `ExecuteNonQuery()`方法用于执行不返回任何数据的SQL语句,如`INSERT`、`UPDATE`或`DELETE`。 5. **异常处理**: 示例代码中,所有的数据库操作都在`try-catch`块中进行,以捕获可能出现的异常。在实际开发中,应根据具体情况处理不同的异常类型,例如网络问题、权限问题或数据错误等。 6. **关闭连接**: 执行完数据库操作后,记得关闭连接以释放资源。在示例中,没有显示关闭连接的部分,但在实际应用中,应该添加`con.Close()`和`cons.Close()`。 C# WinForm操作Access数据库主要包括以下几个步骤:建立数据库连接、构造SQL语句、执行查询或插入操作、处理结果并关闭连接。在实际开发中,还可能涉及到更新、删除等操作,以及事务处理、参数化查询等更复杂的场景。