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;
}
}
=


发布评论