分类: 嵌入式
2012-03-02 14:29:28
解释:
C#连接Access数据库需要导入额外的命名空间,所以有了最前面的两条using命令,这是必不可少的!
strConnection这个变量里存放的是连接数据库所需要的连接字符串,他指定了要使用的数据提供者和要使用的数据源。
“Provider=Microsoft.Jet.OleDb.4.0;”是指数据提供者,这里使用的是Microsoft Jet引擎,也就是Access中的数据引擎,asp.net就是靠这个和Access的数据库连接的。这由你在你机器上安装的ACCESS的版本决定,ACCESS97版本,microsoft.jet.oledb.3.51,而ACCESS2000以上版本则为Microsoft.jet.oledb.4.0.
“Data Source=C:\BegASPNET\Northwind.mdb”是指明数据源的位置,他的标准形式是“Data Source=MyDrive:MyPath\MyFile.MDB”。
PS:
1.“+=”后面的“@”符号是防止将后面字符串中的“\”解析为转义字符。如果你没用"@"符号的话要写成双斜杠: strConnection += "Data Source=C:\\BegASPNET\\Northwind.mdb";
2.如果要连接的数据库文件和当前文件在同一个目录下,还可以使用如下的方法连接:
strConnection+="Data Source=";strConnection+=MapPath("Northwind.mdb");
3.要注意连接字符串中的参数之间要用分号来分隔。
“OleDbConnection objConnection=new OleDbConnection(strConnection);”这一句是利用定义好的连接字符串来建立了一个链接对象,以后对数据库的操作我们都要和这个对象打交道。用using(){}是为了防止运行错误后,连接无法关闭,再次连接也许出问题。
“objConnection.Open();”这用来打开连接。至此,与Access数据库的连接完成。
下面就是对数据库进行操作了:
比如在Northwind.mdb数据库内建一张表t:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.OleDb;
namespace ConsoleConnAccess
{
class Program
{
static void Main(string[] args)
{
string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;";
strConnection += @"Data Source=C:\BegASPNET\Northwind.mdb";
using (OleDbConnection objConnection = new OleDbConnection(strConnection))/*新建连接*/
{
objConnection.Open(); /*打开连接*/
//这里执行对数据库的操作
string create = "create table t " +
"(" +
"cd char(8)," +
"primary key(cd)"+
");";
OleDbCommand cmd = new OleDbCommand(create, objConnection);
int rowsReturned = cmd.ExecuteNonQuery(); /*执行命令*/
objConnection.Close(); /*关闭连接*/
}
}
}
}
运行一下,用access打开看数据库中多了一张表t。
但有时会提示oledbException:找不到可安装的 ISAM。多数是strConnection字符串有错:看一下你的
"Data Source"中间是不是少了一个空格。
转:http://developer.51cto.com/art/200908/141242.htm
C#高级编程第6版