乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      C#.NET操作數(shù)據(jù)庫通用類(MS SQL Server篇)

       NaturalWill 2014-05-17

      下面給出了一個(gè)C#操作MS SQL Server 數(shù)據(jù)庫的通用類,通過該類可以對(duì)數(shù)據(jù)庫進(jìn)行任何操作,包括執(zhí)行SQL語句、執(zhí)行存儲(chǔ)過程。以下是其詳細(xì)實(shí)現(xiàn)過程,希望大家共同修改優(yōu)化之。稍后將介紹如何使用它實(shí)現(xiàn)N層的程序設(shè)計(jì)。

       

      配置web.config文件的鏈接參數(shù)

       

      <appSettings>
          <!--
        connStr參數(shù)設(shè)置,事例說明:
        (1)Sql server數(shù)據(jù)庫,例如“server=local;database=test;uid=sa;pwd=;”
        (2)Access數(shù)據(jù)庫,例如“data\ex.mdb; user id='admin';Jet OLEDB:database password='admin';”
       -->
          <add key="connStr" value="server=127.0.0.1;database=DbName;uid=sa;pwd=;" />
        </appSettings>

       

      C#代碼

       

      using System;
      using System.Data;
      using System.Data.SqlClient;

      namespace Com.LXJ.Database
      {
       /// <summary>
       /// ConnDB 的摘要說明。
       /// </summary>
       public class ConnDB
       {
        protected SqlConnection Connection;
        private string connectionString;

        /// <summary>
        /// 默認(rèn)構(gòu)造函數(shù)
        /// </summary>
        public ConnDB()
        {
         string connStr;
         connStr = System.Configuration.ConfigurationSettings.AppSettings["connStr"].ToString();

         connectionString = connStr;
         Connection = new SqlConnection(connectionString);
        }


        /// <summary>
        /// 帶參數(shù)的構(gòu)造函數(shù)
        /// </summary>
        /// <param name="newConnectionString">數(shù)據(jù)庫聯(lián)接字符串</param>
        public ConnDB(string newConnectionString)
        {
         connectionString = newConnectionString;
         Connection = new SqlConnection(connectionString);
        }


        /// <summary>
        /// 完成SqlCommand對(duì)象的實(shí)例化
        /// </summary>
        /// <param name="storedProcName"></param>
        /// <param name="parameters"></param>
        /// <returns></returns>
        private SqlCommand BuildCommand(string storedProcName,IDataParameter[] parameters)
        {
         SqlCommand command = BuildQueryCommand(storedProcName,parameters);
         command.Parameters.Add(new SqlParameter("ReturnValue",SqlDbType.Int,4,ParameterDirection.ReturnValue,false,0,0,string.Empty,DataRowVersion.Default,null));
         return command;
        }


        /// <summary>
        /// 創(chuàng)建新的SQL命令對(duì)象(存儲(chǔ)過程)
        /// </summary>
        /// <param name="storedProcName"></param>
        /// <param name="parameters"></param>
        /// <returns></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>
        /// 執(zhí)行存儲(chǔ)過程,無返回值
        /// </summary>
        /// <param name="storedProcName"></param>
        /// <param name="parameters"></param>
        public void ExecuteProcedure(string storedProcName,IDataParameter[] parameters)
        {
         Connection.Open();
         SqlCommand command;
         command=BuildQueryCommand(storedProcName,parameters);
         command.ExecuteNonQuery();
         Connection.Close();
        }


        /// <summary>
        /// 執(zhí)行存儲(chǔ)過程,返回執(zhí)行操作影響的行數(shù)目
        /// </summary>
        /// <param name="storedProcName"></param>
        /// <param name="parameters"></param>
        /// <param name="rowsAffected"></param>
        /// <returns></returns>
        public int RunProcedure(string storedProcName,IDataParameter[] parameters,out int rowsAffected)
        {
         int result;
         Connection.Open();
         SqlCommand command = BuildCommand(storedProcName,parameters);
         rowsAffected = command.ExecuteNonQuery();
         result = (int)command.Parameters["ReturnValue"].Value;
         Connection.Close();

         return result;
        }
        

        /// <summary>
        /// 重載RunProcedure把執(zhí)行存儲(chǔ)過程的結(jié)果放在SqlDataReader中
        /// </summary>
        /// <param name="storedProcName"></param>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public SqlDataReader RunProcedure(string storedProcName,IDataParameter[] parameters)
        {
         SqlDataReader returnReader;
         Connection.Open();
         SqlCommand command = BuildQueryCommand(storedProcName,parameters);
         command.CommandType = CommandType.StoredProcedure;
         returnReader = command.ExecuteReader(CommandBehavior.CloseConnection);
         return returnReader;
        }


        /// <summary>
        /// 重載RunProcedure把執(zhí)行存儲(chǔ)過程的結(jié)果存儲(chǔ)在DataSet中和表tableName為可選參數(shù)
        /// </summary>
        /// <param name="storedProcName"></param>
        /// <param name="parameters"></param>
        /// <param name="tableName"></param>
        /// <returns></returns>
        public DataSet RunProcedure(string storedProcName,IDataParameter[] parameters,params string[] tableName)
        {
         DataSet dataSet = new DataSet();
         Connection.Open();
         SqlDataAdapter sqlDA = new SqlDataAdapter();
         sqlDA.SelectCommand = BuildQueryCommand(storedProcName,parameters);
         string flag;
         flag = "";
         for(int i=0;i<tableName.Length;i++)
          flag = tableName[i];
         if (flag!="")
          sqlDA.Fill(dataSet,tableName[0]);
         else
          sqlDA.Fill(dataSet);
         Connection.Close();
         return dataSet;
        }

        
        /// <summary>
        /// 執(zhí)行SQL語句,返回?cái)?shù)據(jù)到DataSet中
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public DataSet ReturnDataSet(string sql)
        {
         DataSet dataSet=new DataSet();
         Connection.Open();
         SqlDataAdapter sqlDA=new SqlDataAdapter(sql,Connection);
         sqlDA.Fill(dataSet,"objDataSet");
         Connection.Close();
         return dataSet;
        }
        

        /// <summary>
        /// 執(zhí)行SQL語句,返回 DataReader
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public SqlDataReader ReturnDataReader(String sql)
        {
         Connection.Open();
         SqlCommand command = new SqlCommand(sql,Connection);
         SqlDataReader dataReader = command.ExecuteReader();

         return dataReader;
        }


        /// <summary>
        /// 執(zhí)行SQL語句,返回記錄數(shù)
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public int ReturnRecordCount(string sql)
        {
         int recordCount = 0;

         Connection.Open();
         SqlCommand command = new SqlCommand(sql,Connection);
         SqlDataReader dataReader = command.ExecuteReader();

         while(dataReader.Read())
         {
          recordCount++;
         }
         dataReader.Close();
         Connection.Close();

         return recordCount;
        }


        /// <summary>
        /// 執(zhí)行SQL語句
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public bool EditDatabase(string sql)
        {
         bool successState = false;

         Connection.Open();
         SqlTransaction myTrans = Connection.BeginTransaction();
         SqlCommand command = new SqlCommand(sql,Connection,myTrans);
         try
         {
          command.ExecuteNonQuery();
          myTrans.Commit();
          successState = true;
         }
         catch
         {
          myTrans.Rollback();
         }
         finally
         {
          Connection.Close();
         }

         return successState;
        }


        /// <summary>
        /// 關(guān)閉數(shù)據(jù)庫聯(lián)接
        /// </summary>
        public void Close()
        {
         Connection.Close();
        }

       }//end class
      }//end namespace

       

       

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約