当前位置:编程学习 > C#/ASP.NET >>

怎样在.net中把连接到sql的数据库连接改变成连接access到数据库??


///web.config
    <!--<add name="SqlConnStr" connectionString="data source =localhost;uid =sq_abzwsj;pwd=sq_////;database=sq_///;pooling=true;" />-->

using System;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;

//********************************************//
//
//数据库连接类
//
//ClsSqlconn.Run_SQL(string SQL)                //执行SQL语句(添加、修改、删除)等操作
//ClsSqlconn.Get_Row1_Col1_Value(string SQL)    //取第一条记录,第一列值
//ClsSqlconn.Showinfo(string s, Boolean gobk)   //参数错误时显示提示对话框;gobk:true页面回退,false页面不回退
//
//********************************************//

public class ClsSqlconn
{
    private static string SqlConnStr = ConfigurationManager.ConnectionStrings["SqlConnStr"].ConnectionString;

    public ClsSqlconn()
    {
    }

    //打开数据库链接
    public static SqlConnection Open_SqlConn()
    {
        try
        {
            SqlConnection SqlConn = new SqlConnection(SqlConnStr);
            SqlConn.Open();
            return SqlConn;
        }
        catch (Exception Ex)
        {
            throw Ex;
        }
    }

    // 生成Command对象  
    public static SqlCommand Create_SqlCmd(string SqlStr, SqlConnection SqlConn)
    {
        SqlCommand SqlCmd = new SqlCommand(SqlStr, SqlConn);
        return SqlCmd;
    }

    //关闭数据库链接
    public static void Close_SqlConn(SqlConnection SqlConn)
    {
        if (SqlConn != null)
        {
            SqlConn.Close();
            SqlConn.Dispose();
        }
        GC.Collect();
    }

    //运行Sql语句
    public static void Run_SQL(string SQL)
    {
        SqlConnection SqlConn = Open_SqlConn();
        SqlCommand SqlCmd = Create_SqlCmd(SQL, SqlConn);
        try
        {
            //int result_count = 
            SqlCmd.ExecuteNonQuery();
            Close_SqlConn(SqlConn);
            //return result_count;
        }
        catch (Exception Ex)
        {
            throw Ex;
        }
    }


    //运行Sql语句,返回受影响的记录条数
    public static int Run_SQL_Row(string SQL)
    {
        SqlConnection SqlConn = Open_SqlConn();
        SqlCommand SqlCmd = Create_SqlCmd(SQL, SqlConn);
        try
        {
            int result_count = SqlCmd.ExecuteNonQuery();
            Close_SqlConn(SqlConn);
            return result_count;
        }
        catch (Exception Ex)
        {
            throw Ex;
        }
    }

    //返回Sql语句执行结果的第一行第一列
    public static string Get_Row1_Col1_Value(string Sql)
    {
        SqlConnection SqlConn = Open_SqlConn();
        string result;
        result = "";

        SqlDataReader Dr;
        try
        {
            Dr = Create_SqlCmd(Sql, SqlConn).ExecuteReader();
            if (Dr.Read())
            {
                result = Dr[0].ToString();
            }
            Dr.Close();
        }
        catch
        {
            throw new Exception(Sql);
        }
        Close_SqlConn(SqlConn);
        return result;
    }

    // 运行Sql语句返回 SqlDataReader对象
    public static SqlDataReader Get_Reader(string SQL)
    {
        SqlConnection SqlConn = Open_SqlConn();
        SqlCommand SqlCmd = Create_SqlCmd(SQL, SqlConn);
        SqlDataReader Dr;
        try
        {
            Dr = SqlCmd.ExecuteReader(CommandBehavior.Default);
        }
        catch
        {
            throw new Exception(SQL);
        }
        Close_SqlConn(SqlConn);
        return Dr;
    }

    // 运行Sql语句返回 SqlDataReader对象
    public static SqlDataReader Get_Reader(SqlCommand SqlCmd)
    {
        //SqlConnection SqlConn = Open_SqlConn();
        //SqlCommand SqlCmd = Create_SqlCmd(SQL, SqlConn);
        SqlDataReader Dr;
        Dr = SqlCmd.ExecuteReader(CommandBehavior.Default);
        return Dr;
    }

    // 运行Sql语句,返回DataSet对象,将数据进行了分页
    public static DataSet Get_DataSet(string SQL, DataSet Ds, int StartIndex, int PageSize, string tablename)
    {
        SqlConnection SqlConn = Open_SqlConn();
        SqlDataAdapter Da = new SqlDataAdapter(SQL, SqlConn);
        try
        {
            Da.Fill(Ds, StartIndex, PageSize, tablename);
        }
        catch (Exception Ex)
        {
            throw Ex;
        }
        Close_SqlConn(SqlConn);
        return Ds;
    }

    // 运行Sql语句,返回DataSet对象
    public static DataSet Get_DataSet(string SQL, DataSet Ds)
    {
        SqlConnection SqlConn = Open_SqlConn();
        SqlDataAdapter Da = new SqlDataAdapter(SQL, SqlConn);
        try
        {
            Da.Fill(Ds);
        }
        catch (Exception Ex)
        {
            throw Ex;
        }
        Close_SqlConn(SqlConn);
        return Ds;       
    }

    // 运行Sql语句返回 DataTable
    public static DataTable Get_DataTable(string SQL, string Tb)
    {
        SqlConnection SqlConn = Open_SqlConn();
        SqlDataAdapter Da = new SqlDataAdapter(SQL, SqlConn);
        DataTable dt = new DataTable(Tb);
        Da.Fill(dt);
        Close_SqlConn(SqlConn);
        return dt;
    }

    // 运行Sql语句返回 SqlDataAdapter对象  
    public static SqlDataAdapter Get_Adapter(string SQL)
    {
        SqlConnection SqlConn = Open_SqlConn();
        SqlDataAdapter Da = new SqlDataAdapter(SQL, SqlConn);
        return Da;
    }

    //显示提示信息
    public static void Showinfo(string s, Boolean gobk)
    {
        if (gobk)
        {
            HttpContext.Current.Response.Write("<script>alert('" + s + "');history.back();</script>");
        }
        else
        {
            HttpContext.Current.Response.Write("<script>alert('" + s + "');</script>");
        }
    }
} --------------------编程问答-------------------- 连接语句Provider=Microsoft.Jet.OLEDB.4.0;DataSource=...
然后using system.data.sqlclient  改成using system.data.OleDb;
下边sql开头的关键字都改成Ole。。 --------------------编程问答-------------------- using system.data;
using system.data.oledb;
......
 <!--<add name="SqlConnStr" connectionString="provider=microsoft.jet.oledb.4.0;";
strconnection+=@"data source=c:\begaspnet\northwind.mdb" />-->

下面用 SqlConnection  SqlDataAdapter 的改成下面
private OleDbConnection conn=new OleDbConnection ();
private OleDbDataAdapter oda = new OleDbDataAdapter();
private OleDbCommand cmd;
剩下的都差不多。


C#连接Access需要注意的事情:

    1."+="后面的"@"符号是防止将后面字符串中的"\"解析为转义字符.

    2.如果要连接的数据库文件和当前文件在同一个目录下,还可以使用如下的方法连接:

    strConnection+="Data Source=";  
    strConnection+=MapPath("Northwind.mdb"); 

    这样就可以省得你写一大堆东西了!

    3.要注意连接字符串中的参数之间要用分号来分隔.

    OleDbConnection objConnection=new OleDbConnection(strConnection); 

    这一句是利用定义好的连接字符串来建立了一个链接对象,以后对数据库的操作我们都要和这个对象打交道.

    objConnection.Open(); 

    这用来打开连接.至此,与Access数据库的连接完成. --------------------编程问答-------------------- 如果将来还可能换的话,最好使用抽象类DbConnection,DbCommand(用Connection对象的CreateCommand创建) 等。

初始化的时候可以选择初始化成SqlConnection 或者OleDbConnection. --------------------编程问答--------------------
引用 2 楼  的回复:
using system.data;
using system.data.oledb;
......
 <!--<add name="SqlConnStr" connectionString="provider=microsoft.jet.oledb.4.0;";
strconnection+=@"data source=c:\begaspnet\northwind.mdb" />-->
……

+1 --------------------编程问答-------------------- 来晚啦。同上啦。给点小分吧!
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,