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