由於某些原因,軟件依賴的數據庫軟件會出現更換!如果數據庫的打開和操作代碼都出現在每個頁裡,那麼更換數據庫軟件後帶來的代碼修改將相當麻煩。所以把數據庫操作代碼寫成一個類,將不會出現上述情況並可以減少代碼量。以下是源碼
using System;
using System.Data;
using System.Data.SqlClIEnt;
namespace news.common
{
/**
* -----------------
* 數據庫聯接 / 操作類
* 2005-03-18 創建
*
[email protected] * ----------------
*/
public class DBClass
{
/*----全局變量定義------*/
private SqlConnection conn;
private SqlCommand comm;
public SqlDataReader dr;
public DataSet ds;
public SqlDataAdapter dad;
private string sql;
private string connStr; /* 數據庫聯接字符串 */
private string errInfo ="";
/*----------------------*/
public DBClass()
{
}
/* 數據庫操作異常信息 只讀屬性 */
public string ErrInfo
{
get
{
return errInfo;
}
}
/* 要操作的Sql語句 */
public string Sql
{
get{
return sql;
}
set{
sql = value;
}
}
/* 數據庫鏈接字符串 */
public string ConnStr
{
get
{
return connStr;
}
set
{
connStr = value;
}
}
private void connDb()
{
conn = new SqlConnection(connStr);
try
{
conn.Open();
}
catch(SqlException e)
{
for(int i=0;i<e.Errors.Count;i++)
{
errInfo += "錯誤序號:"+i+"\n"+
"出錯信息:"+e.Errors[i].Message+"\n"+
"出錯來源:"+e.Errors[i].Source+"\n"+
"程序:"+e.Errors[i].Procedure;
}
conn.Close();
}
}
/* 用於窗體綁定 */
public void dataVIEw()
{
connDb();
dad = new SqlDataAdapter(sql,conn);
ds = new DataSet();
dad.Fill(ds);
DataView dv = new DataVIEw(ds.Tables[0]);
}
/* 執行SQL語句,返回結果 */
public void readerData()
{
connDb();
comm = new SqlCommand(sql,conn);
dr = comm.ExecuteReader();
}
/* 執行SQL語句,不返回結果 */
public void exeSql()
{
connDb();
comm = new SqlCommand(sql,conn);
comm.ExecuteNonQuery();
}
/* 關閉鏈接 */
public void clear()
{
conn.Close();
}
}
}