由于某些原因,软件依赖的数据库软件会出现更换!如果数据库的打开和操作代码都出现在每个页里,那么更换数据库软件后带来的代码修改将相当麻烦。所以把数据库操作代码写成一个类,将不会出现上述情况并可以减少代码量。以下是源码
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();
}
}
}