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