2024年3月9日发(作者:)

c#操作Access数据库的方法大全

本文将c#语言操作Access数据库的方法加以总结,主要解决的问题如下:

创建mdb

创建table

读取table内容

查询table中的内容

向table中插入数据

删除table中的记录

向table中插入照片

读取table中的照片等。

文介绍C#访问操作Access数据库的基础知识,并提供一个相关的例程。C#的还不

能通过编程方式创建全新的ACCESS(MDB)数据库,所以还只能使用ADOX这个来自COM的

链接库来操作。

主要知识点如下:

using ;

using ;

连接字符串:String connectionString = "Provider=.4.0;Data

Source=";

建立连接:OleDbConnection connection = new OleDbConnection(connectionString);

使用OleDbCommand类来执行Sql语句:

OleDbCommand cmd = new OleDbCommand(sql, connection);

();

eNonQuery();

1.创建mdb库,例程如下:

需要注意的是:参数mdbPath是mdb的完整路径(不包含表的名称)。例如:D:

//创建mdb

public static bool CreateMDBDataBase(string mdbPath)

{

try

{

gClass cat = new gClass();

("Provider=.4.0;Data Source=" + mdbPath +

";");

cat = null;

return true;

}

catch { return false; }

}

2.创建具体的表,例程如下:

通常一个mdb的可以包含n个表。下面的程序主要是创建一个table。

//新建mdb的表

//mdbHead是一个ArrayList,存储的是table表中的具体列名。

public static bool CreateMDBTable(string mdbPath,string tableName, ArrayList

mdbHead)

{

try

{

gClass cat = new gClass();

string sAccessConnection = @"Provider=.4.0;Data

Source=" + mdbPath;

tion cn = new tion();

(sAccessConnection, null, null, -1);

Connection = cn;

//新建一个表

lass tbl = new lass();

Catalog = cat;

= tableName;

int size = ;

for (int i = 0; i < size; i++)

{

//增加一个文本字段

Class col2 = new Class();

Catalog = cat;

= mdbHead[i].ToString();//列的名称

ties["Jet OLEDB:Allow Zero Length"].Value = false;

(col2, Char, 500);

}

(tbl); //这句把表加入数据库(非常重要)

tbl = null;

cat = null;

();

return true;

}

catch { return false; }

}

3.读取mdb内容(完全读取),例程如下:

本例程返回的是一个DataTable,如需其他格式可以自行转换。

// 读取mdb数据

public static DataTable ReadAllData(string tableName, string mdbPath,ref bool success)

{

DataTable dt = new DataTable();

try

{

DataRow dr;

//1、建立连接

string strConn = @"Provider=.4.0;Data Source=" +

mdbPath + ";Jet OLEDB:Database Password=haoren";

OleDbConnection odcConnection = new OleDbConnection(strConn);

//2、打开连接

();

//建立SQL查询

OleDbCommand odCommand = Command();

//3、输入查询语句

dText = "select * from " + tableName;

//建立读取

OleDbDataReader odrReader = eReader();

//查询并显示数据

int size = ount;

for (int i = 0; i < size; i++)

{

DataColumn dc;

dc = new DataColumn(e(i));

(dc);

}

while (())

{

dr = ();

for (int i = 0; i < size; i++)

{

dr[e(i)]

odrReader[e(i)].ToString();

}

(dr);

}

//关闭连接

();

();

success = true;

return dt;

}

catch

{

success = false;

return dt;

}

=

}

4.读取mdb内容(按列读取),例程如下:

columns数组存储的是你要查询的列名称(必须确保mdb表中存在你要的列)

// 读取mdb数据

public static DataTable ReadDataByColumns(string mdbPaht,string tableName, string[]

columns, ref bool success)

{

DataTable dt = new DataTable();

try

{

DataRow dr;

//1、建立连接

string strConn = @"Provider=.4.0;Data Source=" +

mdbPath + ";Jet OLEDB:Database Password=haoren";

OleDbConnection odcConnection = new OleDbConnection(strConn);

//2、打开连接

();

//建立SQL查询

OleDbCommand odCommand = Command();

//3、输入查询语句

string strColumn = "";

for (int i = 0; i < ; i++)

{

strColumn += columns[i].ToString() + ",";

}

strColumn = d(',');

dText = "select "+strColumn+" from " + tableName;

//建立读取

OleDbDataReader odrReader = eReader();

//查询并显示数据

int size = ount;

for (int i = 0; i < size; i++)

{

DataColumn dc;

dc = new DataColumn(e(i));

(dc);

}

while (())

{

dr = ();

for (int i = 0; i < size; i++)

{

dr[e(i)]

odrReader[e(i)].ToString();

}

(dr);

}

//关闭连接

();

();

success = true;

return dt;

}

catch

{

success = false;

return dt;

}

}

=