小十的个人博客

@小十

born for design, do what you want, and carpe diem

文章 343
朋友 17
来访 1840

LATEST POSTS

RANKINGS

    • http://www.xiaoten.com
    • 网站成立5377天

    小十

    • 收藏品

    C#操作Access数据库知识

    入门者使用……高手绕行

    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有所帮助。

    Comments | NOTHING

      游客,你好 修改资料

    *邮箱和昵称必须填写