怎样在.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. --------------------编程问答--------------------
+1 --------------------编程问答-------------------- 来晚啦。同上啦。给点小分吧!
补充:.NET技术 , ASP.NET