1、数据库的连接
引入命名空间
using System.Data;
using System.Data.OleDb;
连接代码:
string strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;";
strConnection += @"Data Source=D:db_history.accdb;Persist Security Info=False;";
OleDbConnection objConnection = new OleDbConnection(strConnection);
objConnection.Open();
objConnection.Close();
对于连接这部分,如果使用的是Access07之前的数据库后缀名均为*.mdb 而连接字符串写成Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:db_history.accdb ;Persist Security Info=False;否则会报错。
2、数据库的操作:
(1)DataReader :阅读类,执行数据的“只向前”的读取。
ADO.NET DataReader对象可以从数据库中检索只读、只进的数据流。因为每次在内存中的数据只有一行,所以使用DataReader可提高应用程序的性能并减少系统开销。它还提供了未缓冲的数据流,该数据流使过程逻辑可以有效地按顺序处理从数据源中返回的结果。
(2)DataSet :DataSet,DataAdapter读取数据。
dataset可以向数据库那样运行,但重要的是要记住:dataset对象不直接与数据或其他元数据进行交互,这使得开发人员能够使用始终保持一致的编程模型,而不用理会源数据的驻留位置。
(3)ExecuteNonQuery :利用ExecuteNonQuery,执行数据的插入、更新、删除。
在ADO.NET中,ExecuteNonQuery方法用于执行不需要返回结果的命令,如插入、删除和更新等操作。
(4)ExecuteScalar :利用ExecuteScalar统计数据。
ExecuteScalar方法可以返回单个值,如求和、总行数等SQL语句的聚合函数。
3、路径问题:
在asp.net中经常把连接字符串写在web.config中。但是access的连接字符串是需要数据库的绝对位置。即 盘符:/文件夹/文件 这样就导致经常把文件拷贝后需要改路径的问题。其实完全可以通过程序来获得数据库文件的绝对路径。具体如下:
web.config中只写数据库文件名 (一般会把数据库文件放在App_Data文件夹下,因为有一定的安全性)
<appSettings> <add key="ConnString" value="App_Data\db_history.accdb"/> </appSettings>然后在连接数据库路径除使用:string strConnection = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + AppDomain.CurrentDomain.BaseDirectory + System.Configuration.ConfigurationManager.AppSettings["ConnString"];这样就可获得数据库的连接路径了。