入门者使用……高手绕行

C#操作Access数据库的基础知识

通过ADO.NET的OleDb相关类来操作Access

主要知识点如下:

using System.Data.OleDb;

using System.Data;

连接字符串:

String connectionString =  "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=product.mdb";

建立连接:

OleDbConnection connection = new OleDbConnection(connectionString);

使用OleDbCommand类来执行Sql语句:

OleDbCommand cmd = new OleDbCommand(sql, connection);
connection.Open();
cmd.ExecuteNonQuery();

C#操作Access数据库的基础知识2.

取得Access自增标识字段在插入数据后的id值

cmd.CommandText = @"select @@identity";
int value = Int32.Parse(cmd.ExecuteScalar().ToString());
return value;

C#操作Access数据库的基础知识3.

执行事务

需要用到OleDbTransaction,关键语句如下:

OleDbConnection connection = new OleDbConnection(connectionString);
OleDbCommand cmd = new OleDbCommand();
OleDbTransaction transaction = null;
cmd.Connection = connection;
connection.Open();
transaction = connection.BeginTransaction();
cmd.Transaction = transaction;
cmd.CommandText=sql1;
cmd.ExecuteNonQuery();
cmd.CommandText=sql2;
cmd.ExecuteNonQuery();
transaction.Commit();

C#操作Access数据库的基础知识4.

执行查询,返回DataSet

OleDbConnection connection =
new OleDbConnection(connectionString);
DataSet ds = new DataSet();
connection.Open();
OleDbDataAdapter da =
new OleDbDataAdapter(sql, connection);
da.Fill(ds,"ds");

分页查询

分页查询使用OleDbDataReader来读取数据,并将结果写到一个DataSet中返回。

以上内容封装为三个可重用的类:AccessDBUtil,AccessPageUtil,Page

C#操作Access之创建mdb库浅析

C#操作Access之创建mdb库是如何实现的呢?首先我们来看看基本的知识:本文C#操作Access数据库的基础知识,并提供一个相关的实例。C#的ADO.NET还不能通过编程方式创建全新的ACCESS(MDB)数据库,所以还只能使用ADOX这个来自COM的链接库来操作。

C#操作Access主要知识点如下:

using System.Data.OleDb;

using System.Data;

C#操作Access连接字符串:

String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=product.mdb";

C#操作Access建立连接:

OleDbConnection connection = new OleDbConnection(connectionString);

C#操作Access使用OleDbCommand类来执行Sql语句:

OleDbCommand cmd = new OleDbCommand(sql, connection);

connection.Open();

cmd.ExecuteNonQuery();

C#操作Access之创建mdb库,例程如下:

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

C#操作Access之创建mdb库实例:D:\test.mdb

//创建mdb
public static bool CreateMDBDataBase(string mdbPath)
{

    try

    {

ADOX.CatalogClass cat = new ADOX.CatalogClass();

cat.Create(
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
+ mdbPath + ";");

cat = null;

return true;

    }
 //C#操作Access之创建mdb库
    catch {

return false;

}

}

C#操作Access之创建mdb库的基本内容就向你介绍到这里,希望对你了解和学习C#操作Access之创建mdb库有所帮助。

C#操作Access之创建表浅析

C#操作Access之创建表是如何实现的呢?首先我们来看看基本的知识:本文C#操作Access数据库的基础知识,并提供一个相关的实例。C#的ADO.NET还不能通过编程方式创建全新的ACCESS(MDB)数据库,所以还只能使用ADOX这个来自COM的链接库来操作。

C#操作Access主要知识点如下:

using System.Data.OleDb;

using System.Data;

C#操作Access连接字符串:

String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=product.mdb";

C#操作Access建立连接:

OleDbConnection connection = new OleDbConnection(connectionString);

C#操作Access使用OleDbCommand类来执行Sql语句:

OleDbCommand cmd = new OleDbCommand(sql, connection);

connection.Open();

cmd.ExecuteNonQuery();

C#操作Access之创建表,例程如下:

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

//新建mdb的表,C#操作Access之创建表

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

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

{
    try
    {
ADOX.CatalogClass cat = new ADOX.CatalogClass();

string sAccessConnection = @"Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=" + mdbPath;
ADODB.Connection cn = new ADODB.Connection();

cn.Open(sAccessConnection, null, null, -1);

cat.ActiveConnection = cn;

//新建一个表,C#操作Access之创建表
ADOX.TableClass tbl = new ADOX.TableClass();
tbl.ParentCatalog = cat;
tbl.Name = tableName;

int size = mdbHead.Count;
for (int i = 0; i < size; i++)
{
    //增加一个文本字段
    ADOX.ColumnClass col2 = new ADOX.ColumnClass();

    col2.ParentCatalog = cat;
    col2.Name = mdbHead[i].ToString();//列的名称

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

    tbl.Columns.Append(col2, ADOX.DataTypeEnum.adVarWChar, 500);
}
cat.Tables.Append(tbl);

 //这句把表加入数据库(非常重要)  ,C#操作Access之创建表
tbl = null;
cat = null;
cn.Close();
return true;
    }
    catch { return false; }
}

C#操作Access之创建表的基本内容就向你介绍到这里,希望对你了解和学习C#操作Access之创建表有所帮助。

C#操作Access之读取mdb浅析

C#操作Access之读取mdb是如何实现的呢?首先我们来看看基本的知识:本文C#操作Access数据库的基础知识,并提供一个相关的实例。C#的ADO.NET还不能通过编程方式创建全新的ACCESS(MDB)数据库,所以还只能使用ADOX这个来自COM的链接库来操作。

C#操作Access主要知识点如下:

using System.Data.OleDb;

using System.Data;

C#操作Access连接字符串:

String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=product.mdb";

C#操作Access建立连接:

OleDbConnection connection = new OleDbConnection(connectionString);

C#操作Access使用OleDbCommand类来执行Sql语句:

OleDbCommand cmd = new OleDbCommand(sql, connection);

connection.Open();

cmd.ExecuteNonQuery();

C#操作Access之读取mdb实例如下:

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

// 读取mdb数据
public static DataTable ReadAllData(string tableName,
string mdbPath,ref bool success)
{
    DataTable dt = new DataTable();
    try
    {
DataRow dr;

//1、建立连接 C#操作Access之读取mdb

string strConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
+ mdbPath + ";Jet OLEDB:Database  Password=haoren";
OleDbConnection odcConnection = new OleDbConnection(strConn);

//2、打开连接 C#操作Access之读取mdb
odcConnection.Open();

//建立SQL查询
OleDbCommand odCommand = odcConnection.CreateCommand();

//3、输入查询语句 C#操作Access之读取mdb

odCommand.CommandText = "select * from " + tableName;

//建立读取
OleDbDataReader odrReader = odCommand.ExecuteReader();

//查询并显示数据
int size = odrReader.FieldCount;
for (int i = 0; i < size; i++)
{
    DataColumn dc;
    dc = new DataColumn(odrReader.GetName(i));
    dt.Columns.Add(dc);
}
while (odrReader.Read())
{
    dr = dt.NewRow();
    for (int i = 0; i < size; i++)
    {
dr[odrReader.GetName(i)] =
odrReader[odrReader.GetName(i)].ToString();
    }
    dt.Rows.Add(dr);
}
//关闭连接 C#操作Access之读取mdb
odrReader.Close();
odcConnection.Close();
success = true;
return dt;
    }
    catch
    {
success = false;
return dt;
    }
}

C#操作Access之读取mdb的基本内容就向你介绍到这里,希望对你了解和学习C#操作Access之读取mdb有所帮助。

C#操作Access之按列读取mdb浅析

C#操作Access之按列读取mdb是如何实现的呢?首先我们来看看基本的知识:本文C#操作Access数据库的基础知识,并提供一个相关的实例。C#的ADO.NET还不能通过编程方式创建全新的ACCESS(MDB)数据库,所以还只能使用ADOX这个来自COM的链接库来操作。

C#操作Access主要知识点如下:

using System.Data.OleDb;

using System.Data;

C#操作Access连接字符串:

String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=product.mdb";

C#操作Access建立连接:

OleDbConnection connection = new OleDbConnection(connectionString);

C#操作Access使用OleDbCommand类来执行Sql语句:

OleDbCommand cmd = new OleDbCommand(sql, connection);

connection.Open();

cmd.ExecuteNonQuery();

C#操作Access之按列读取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、建立连接 C#操作Access之按列读取mdb
string strConn = @"Provider=Microsoft.
Jet.OLEDB.4.0;Data Source="
+ mdbPath + ";Jet OLEDB:Database Password=haoren";
OleDbConnection odcConnection =
new OleDbConnection(strConn);
//2、打开连接 C#操作Access之按列读取mdb
odcConnection.Open();
//建立SQL查询
OleDbCommand odCommand = odcConnection.CreateCommand();
//3、输入查询语句
string strColumn = "";
for (int i = 0; i < columns.Length; i++)
{
    strColumn += columns[i].ToString() + ",";
}
strColumn = strColumn.TrimEnd(',');
odCommand.CommandText = "select "+strColumn+
" from " + tableName;
//建立读取 C#操作Access之按列读取mdb
OleDbDataReader odrReader =
odCommand.ExecuteReader();
//查询并显示数据 C#操作Access之按列读取mdb
int size = odrReader.FieldCount;
for (int i = 0; i < size; i++)
{
    DataColumn dc;
    dc = new DataColumn(odrReader.GetName(i));
    dt.Columns.Add(dc);
}

while (odrReader.Read())
{
    dr = dt.NewRow();
    for (int i = 0; i < size; i++)
    {
dr[odrReader.GetName(i)] = odrReader[
odrReader.GetName(i)].ToString();
    }
    dt.Rows.Add(dr);
}
//关闭连接 C#操作Access之按列读取mdb
odrReader.Close();
odcConnection.Close();
success = true;
return dt;
    }
    catch
    {
success = false;
return dt;
    }
}

C#操作Access之按列读取mdb的基本内容就向你介绍到这里,希望对你了解和学习C#操作Access之按列读取mdb有所帮助。

C#操作Access实例解析

C#操作Access实例是怎么实现的呢?让我们来看看具体的代码:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;

/// <summary>
/// DataAccess 的摘要说明 C#操作Access实例解析
/// </summary>
public class DataAccess
{
 protected static OleDbConnection conn = new OleDbConnection();
 protected static OleDbCommand comm = new OleDbCommand();
public DataAccess()
{
   //init C#操作Access实例解析
}
 private static void openConnection()
 {
if (conn.State == ConnectionState.Closed)
{
conn.ConnectionString = @"Provider=Microsoft.Jet.OleDb.4.0;
Data Source="+ConfigurationManager.AppSettings["myconn"];
//web.config文件里设定。
comm.Connection = conn;
try
{
conn.Open();
}
catch (Exception e)
{ throw new Exception(e.Message); }

}

 }//打开数据库 C#操作Access实例解析

 private static void closeConnection()
 {
if (conn.State == ConnectionState.Open)
{
conn.Close();
conn.Dispose();
comm.Dispose();
}
 }//关闭数据库 C#操作Access实例解析

 public static void excuteSql(string sqlstr)
 {
try
{
openConnection();
comm.CommandType = CommandType.Text;
comm.CommandText = sqlstr;
comm.ExecuteNonQuery();
}
catch (Exception e)
{
throw new Exception(e.Message);
}
finally
{ closeConnection(); }
 }//执行sql语句 C#操作Access实例解析

 public static OleDbDataReader dataReader(string sqlstr)
 {
OleDbDataReader dr = null;
try
{
openConnection();
comm.CommandText = sqlstr;
comm.CommandType = CommandType.Text;

dr = comm.ExecuteReader(CommandBehavior.CloseConnection);
}
catch
{
try
{
dr.Close();
closeConnection();
}
catch { }
}
return dr;
}
//返回指定sql语句的OleDbDataReader对象,使用时请注意关闭这个对象。
 public static void dataReader(string sqlstr,
 ref OleDbDataReader dr)
 {
try
{
openConnection();
comm.CommandText = sqlstr;
comm.CommandType = CommandType.Text;
dr=comm.ExecuteReader(CommandBehavior.CloseConnection);
}
catch
{
try
{
if (dr != null && !dr.IsClosed)
   dr.Close();
}  //C#操作Access实例解析
catch
{
}
finally
{
closeConnection();
}
}
 }
//返回指定sql语句的OleDbDataReader对象,使用时请注意关闭

 public static DataSet dataSet(string sqlstr)
 {
DataSet ds = new DataSet();
OleDbDataAdapter da = new OleDbDataAdapter();
try
{
openConnection();
comm.CommandType = CommandType.Text;
comm.CommandText = sqlstr;
da.SelectCommand = comm;
da.Fill(ds);

}
catch (Exception e)
{
throw new Exception(e.Message);
}
finally
{
closeConnection();
}
return ds;
 }//返回指定sql语句的dataset C#操作Access实例解析

 public static void dataSet(
string sqlstr, ref DataSet ds)
 {
OleDbDataAdapter da = new OleDbDataAdapter();
try
{
openConnection();
comm.CommandType = CommandType.Text;
comm.CommandText = sqlstr;
da.SelectCommand = comm;
da.Fill(ds);
}
catch (Exception e)
{
throw new Exception(e.Message);
}
finally
{
closeConnection();
}
 }//返回指定sql语句的dataset C#操作Access实例解析

 public static DataTable dataTable(string sqlstr)
 {
DataTable dt = new DataTable();
OleDbDataAdapter da = new OleDbDataAdapter();
try
{
openConnection();
comm.CommandType = CommandType.Text;
comm.CommandText = sqlstr;
da.SelectCommand = comm;
da.Fill(dt);
}
catch (Exception e)
{
throw new Exception(e.Message);
}
finally
{
closeConnection();
}
return dt;
 }//返回指定sql语句的datatable
 public static void dataTable(
string sqlstr, ref DataTable dt)
 {
OleDbDataAdapter da = new OleDbDataAdapter();
try
{
openConnection();
comm.CommandType = CommandType.Text;
comm.CommandText = sqlstr;
da.SelectCommand = comm;
da.Fill(dt);
}
catch (Exception e)
{
throw new Exception(e.Message);
}
finally
{
closeConnection();
}
 }//返回指定sql语句的datatable C#操作Access实例解析

 public static DataView dataView(string sqlstr)
 {
OleDbDataAdapter da = new OleDbDataAdapter();
DataView dv = new DataView();
DataSet ds = new DataSet();
try
{
openConnection();
comm.CommandType = CommandType.Text;
comm.CommandText = sqlstr;
da.SelectCommand = comm;
da.Fill(ds);
dv = ds.Tables[0].DefaultView;
}
catch (Exception e)
{
throw new Exception(e.Message);
}
finally
{
closeConnection();
}
return dv;
 }
//返回指定sql语句的dataview C#操作Access实例解析

}

C#操作Access实例解析的基本内容就向你介绍到这里,希望对你了解和学习C#操作Access有所帮助。

最后修改:2021 年 07 月 29 日
如果觉得我的文章对你有用,请随意赞赏