国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

基于SQLServer的數據層基類C#源碼

2024-07-21 02:27:33
字體:
來源:轉載
供稿:網友

/*****************************************************
 * 文 件 名:dbobject.cs
 * 功能描述:定義數據層基類。
 * 創 建 人:夏春濤
[email protected] qq:23106676
 * 創建時間:2004-08-11 11:05
 *****************************************************/

using system;
using system.data;
using system.data.sqlclient;
using system.configuration;

namespace xd.xlb.jbc.jbinfo.webmodules.data
{
 /// <summary>
 /// 數據層基類,提供對底層數據的基本操作
 /// </summary>
 public class dbobject
 {  
  private sqlconnection connection;
  
  #region 構造函數
  /// <summary>
  /// 構造函數,初始化數據連接對象
  /// </summary>
  public dbobject()
  {
   string connectionstring = configurationsettings.appsettings.get("connectionstring");//從web.config中取得的連接字符串
   connection = new sqlconnection(connectionstring);
  }

  /// <summary><table >
  /// <tr><td><b>功能描述</b>:構造函數,根據指定的數據連接字符串,初始化數據連接對象</td></tr>
  /// <tr><td><b>創 建 人</b>:夏春濤 </td></tr>
  /// <tr><td><b>創建時間</b>:2005-05-28 </td></tr>
  /// </table></summary>
  /// <param name="newconnectionstring">數據連接字符串</param>
  public dbobject( string newconnectionstring )
  {
   string connectionstring = newconnectionstring;
   connection = new sqlconnection( connectionstring );
  }
  #endregion

  /// <summary>
  /// 數據連接對象(只讀)
  /// </summary>  
  public sqlconnection connection
  {
   get
   {
    return connection;
   }
   set
   {
    connection = value;
   }
  }  

  //-----------------------------------------------------------------------------------------
  //以下是從《asp.net web站點高級編程》中copy的(夏春濤)------------------------------------
  //-----------------------------------------------------------------------------------------
  /// <summary>
  /// 創建一個sqlcommand對象,用于獲取存儲過程的返回值
  /// </summary>
  /// <param name="storedprocname">存儲過程名稱</param>
  /// <param name="parameters">存儲過程的參數對象列表(數組)</param>
  /// <returns>sqlcommand對象</returns>
  private sqlcommand buildintcommand(string storedprocname, idataparameter[] parameters)
  {
   sqlcommand command = buildquerycommand( storedprocname, parameters );   

   command.parameters.add( new sqlparameter ( "returnvalue",
    sqldbtype.int,
    4, /* size */
    parameterdirection.returnvalue,
    false, /* is nullable */
    0, /* byte precision */
    0, /* byte scale */
    string.empty,
    datarowversion.default,
    null ));

   return command;
  }


  /// <summary>
  /// 創建一個sqlcommand對象,用于生成sqldatareader
  /// </summary>
  /// <param name="storedprocname">存儲過程名稱</param>
  /// <param name="parameters">存儲過程的參數對象列表(數組)</param>
  /// <returns>sqlcommand對象</returns>
  private sqlcommand buildquerycommand(string storedprocname, idataparameter[] parameters)
  {
   sqlcommand command = new sqlcommand( storedprocname, connection );
   command.commandtype = commandtype.storedprocedure;

   foreach (sqlparameter parameter in parameters)
   {
    command.parameters.add( parameter );
   }

   return command;

  }

  /// <summary>
  /// 運行存儲過程,獲取影響數,返回存儲過程運行結果
  /// </summary>
  /// <param name="storedprocname">存儲過程名稱</param>
  /// <param name="parameters">存儲過程的參數對象列表(數組)</param>
  /// <param name="rowsaffected">出參:執行存儲過程所影響的記錄行數</param>
  /// <returns>存儲過程的運行結果</returns>
  public object runprocedure(string storedprocname, idataparameter[] parameters, out int rowsaffected )
  {
   object result;

   if(connection.state.tostring() == "closed")
    connection.open();
   sqlcommand command = buildintcommand( storedprocname, parameters );
   rowsaffected = command.executenonquery();
   result = command.parameters["returnvalue"].value;
   connection.close();
   return result;
  }

  /// <summary>
  /// 運行存儲過程,返回產生的sqldatareader對象
  /// </summary>
  /// <param name="storedprocname">存儲過程名稱</param>
  /// <param name="parameters">存儲過程的參數對象列表(數組)</param>
  /// <returns>sqldatareader對象</returns>
  public sqldatareader runprocedure(string storedprocname, idataparameter[] parameters )
  {
   sqldatareader returnreader;

   connection.open();
   sqlcommand command = buildquerycommand( storedprocname, parameters );
   command.commandtype = commandtype.storedprocedure;

   returnreader = command.executereader();
   //connection.close();
   return returnreader;
  }

  /// <summary>
  /// 運行存儲過程,創建一個dataset對象,
  /// 將運行結果存入指定的datatable中,返回dataset對象
  /// </summary>
  /// <param name="storedprocname">存儲過程名稱</param>
  /// <param name="parameters">存儲過程的參數對象列表(數組)</param>
  /// <param name="tablename">數據表名稱</param>
  /// <returns>dataset對象</returns>
  public dataset runprocedure(string storedprocname, idataparameter[] parameters, string tablename )
  {
   dataset dataset = new dataset();
   connection.open();
   sqldataadapter sqlda = new sqldataadapter();
   sqlda.selectcommand = buildquerycommand( storedprocname, parameters );
   sqlda.fill( dataset, tablename );
   connection.close();

   return dataset;
  }

  /// <summary>
  /// 運行存儲過程,將運行結果存入已有dataset對象的指定表中,無返回值
  /// </summary>  
  /// <param name="storedprocname">存儲過程名稱</param>
  /// <param name="parameters">存儲過程的參數對象列表(數組)</param>
  /// <param name="dataset">dataset對象</param>
  /// <param name="tablename">數據表名稱</param>
  public void runprocedure(string storedprocname, idataparameter[] parameters, dataset dataset, string tablename )
  {
   connection.open();
   sqldataadapter sqlda = new sqldataadapter();
   sqlda.selectcommand = buildintcommand( storedprocname, parameters );
   sqlda.fill( dataset, tablename );
   connection.close();   
  }

  //-----------------------------------------------------------------------------------------
  //以下是自建的(夏春濤)-------------------------------------------------------------------
  //-----------------------------------------------------------------------------------------
  /// <summary>
  /// 運行與寫數據庫相關的sql語句,返回影響行數**********************************************
  /// </summary>  
  /// <param name="sqlstring">sql語句</param>
  /// <returns>影響行數</returns>
  public int exenonquery(string sqlstring)
  {
   int rowaffected;
   if(connection.state.tostring() == "closed")
    connection.open();
   sqlcommand command = new sqlcommand( sqlstring, connection );
   rowaffected = command.executenonquery();
   //connection.close();
 
   return rowaffected;

  }

  /// <summary>
  /// 運行sql語句,返回sqldatareader對象
  /// </summary>
  /// <param name="sqlstring">sql語句</param>
  /// <returns>sqldatareader對象</returns>
  public sqldatareader exesqlstring(string sqlstring)
  {
   sqldatareader returnreader;

   if(connection.state.tostring() == "closed")
    connection.open();
   sqlcommand command = new sqlcommand( sqlstring, connection );
   returnreader = command.executereader();
   //connection.close();

   return returnreader;
  }

  /// <summary>
  /// 運行sql語句,返回dataset對象
  /// </summary>
  /// <param name="string">sql語句</param>
  /// <param name="tablename">數據表名稱</param>
  /// <returns>dataset對象</returns>
  public dataset exesqlstring(string sqlstring, string tablename )
  {
   dataset dataset = new dataset();
   if (connection.state.tostring() == "closed")
                connection.open();
   sqldataadapter sqlda = new sqldataadapter();
   sqlda.selectcommand = new sqlcommand( sqlstring, connection );
   sqlda.fill( dataset, tablename );
   connection.close();

   return dataset;
  }

  /// <summary>
  /// 運行sql語句,將運行結果存入已有dataset對象的指定表中,無返回值
  /// </summary>  
  /// <param name="sqlstring">sql語句</param>
  /// <param name="dataset">dataset對象</param>
  /// <param name="tablename">數據表名稱</param>
  public void exesqlstring(string sqlstring, dataset dataset, string tablename )
  {
   if (connection.state.tostring() == "closed")
    connection.open();
   sqldataadapter sqlda = new sqldataadapter();
   sqlda.selectcommand = new sqlcommand( sqlstring, connection );
   sqlda.fill( dataset, tablename );
   connection.close();  
  }

  
  /// <summary>
  /// 運行sql語句,返回查詢結果的第一行的第一列,忽略其它行或列
  /// </summary>  
  /// <param name="sqlstring">sql語句</param>
  /// <returns>影響行數</returns>
  public object exescalar(string sqlstring)
  {
   object returnscalar;
   if (connection.state.tostring() == "closed")
    connection.open();
   sqlcommand command = new sqlcommand( sqlstring, connection );
   returnscalar = command.executescalar();
   //connection.close();
   
   return returnscalar;
  }
  
  ~dbobject()
  {
   if(connection.state.tostring() == "open")
                connection.close();
   connection.dispose();
  }

 }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 措勤县| 敦化市| 临海市| 宜章县| 静宁县| 富宁县| 湘阴县| 建湖县| 广水市| 富锦市| 惠水县| 义乌市| 黑水县| 克东县| 夏邑县| 普安县| 莫力| 合川市| 南平市| 平顺县| 永善县| 清丰县| 通化县| 九龙坡区| 香河县| 桃江县| 大姚县| 泊头市| 荆门市| 威信县| 崇左市| 云龙县| 信宜市| 游戏| 台东县| 射洪县| 施甸县| 肥西县| 宁晋县| 汕头市| 赤壁市|