由于某些原因,软件依赖的数据库软件会出现更换!如果数据库的打开和操作代码都出现在每个页里,那么更换数据库软件后带来的代码修改将相当麻烦。所以把数据库操作代码写成一个类,将不会出现上述情况并可以减少代码量。以下是源码
using System;
using System.Data;
using System.Data.SqlClient;
namespace news.common
{
/**
* -----------------
* 数据库联接 / 操作类
* 2005-03-18 创建
* Ryan_bin@126.com
* ----------------
*/
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();
}
}
}
……