C#寫的資料庫操作類!

來源:互聯網
上載者:User
資料|資料庫
        由於某些原因,軟體依賴的資料庫軟體會出現更換!如果資料庫的開啟和作業碼都出現在每個頁裡,那麼更換資料庫軟體後帶來的代碼修改將相當麻煩。所以把資料庫作業碼寫成一個類,將不會出現上述情況並可以減少代碼量。以下是源碼

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();
  }
 }
}



相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。