独自のデータアクセスクラスを記述するために、

要約:それは自分でデータアクセスクラスを記述しています


システムを使用しました。
System.Collections.Genericを使用しました。
System.Configurationを使用しました。
System.Dataを使用しました。
System.Data.SqlClientを使用します。
System.Linqのを使用しました。
System.Textのを使用しました。
System.Threading.Tasksを使用しました。
System.Web.UI.WebControls.WebPartsを使用しました。
System.Windows.Formsを使用しました。

名前空間のログイン
{
  クラスCMD
  {
//数据存取层第一版2013 0603
#regionの对象初始化
      プライベートSqlConnectionオブジェクトt_conn = NULL; //连线字符串
      プライベートSqlCommandオブジェクトt_cmd = NULL;
      プライベートSqlDataAdapterオブジェクトt_da = NULL;
      民間のDataSet t_ds = NULL;
      民間のDataTable t_dt = NULL;
      パブリックCMD()
      {
          t_conn = GetConn()。
          t_cmd =新しいSqlCommandオブジェクト();
          t_da =新しいSqlDataAdapterオブジェクト();
          
      }
#endregion
#region取回连线字符串
      パブリック静的SqlConnectionオブジェクトGetConn()//打开のSqlConnection 
      {


          SqlConnectionのt_conn =新しいSqlConnectionオブジェクト(ConfigurationManager.ConnectionStrings [ "WinFormConn"]のConnectionString。)。
          //はSystem.Configuration.ConfigurationSettings.AppSettings [ "AppConnectionStringを"]を返します。
          t_conn返します。

      }
#endregion
#region执行DDL
      公共INT ExceSQLCommand(文字列SqlStr)//执行SqlCommandオブジェクト
      {
          INT、N = 0。
          試す
          {
              t_cmd =新しいSqlCommandオブジェクト(SqlStr、GetConn())。
              t_cmd.Connection.Open();
              t_cmd.CommandType = CommandType.Text。
               N = t_cmd.ExecuteNonQuery()。
          }
          キャッチ(例外例)
          {

              EXを投げます。
          }

          戻りN。
      }



      #endregion
#region取回は、ExecuteScalar
パブリックオブジェクトGetSingleObject(ストリングsqlstr)
{
  オブジェクトOBJ = NULL;
  t_cmd =新しいSqlCommandオブジェクト(sqlstr、GetConn());
  t_cmd.CommandType = CommandType.Text。


  試す
  {
      IF(t_cmd.Connection.State == ConnectionState.Closed)
      {
          t_cmd.Connection.Open()。
      }

      OBJ = t_cmd.ExecuteScalar()。
  }
  キャッチ(例外例)
  {
      EXを投げます。
  } OBJを返します。
}

#endregion    
#region取得DataReaderの
公共SqlDataReaderののGetDataReader(ストリングSqlStr)//取得のDataReader
{
  試みる
  {
      t_cmd =新しいSqlCommandオブジェクト(SqlStr、GetConn())。




      t_cmd.CommandType = CommandType.Text。
      IF(t_cmd.Connection.State == ConnectionState.Closed)
      {
          t_cmd.Connection.Open();
      }

      SqlDataReaderのは、DR = t_cmd.ExecuteReader()。
      DRを返します。
  }
  キャッチ(例外例)
  {

      EXを投げます。
  }

}


パブリックSqlDataReaderののGetDataReader(ストリングSqlStr、SqlParameter []パラメータ)//取得DataReaderの并带N个参数
{
  t_cmd =新しいSqlCommandオブジェクト(SqlStr、GetConn())。
  t_cmd.CommandType = CommandType.Text。


  foreachの(パラメータのSqlParameterのPARAM)
  {
      (param.Direction == ParameterDirection.Input)であれば
      {
          param.Direction = ParameterDirection.Input。
          t_cmd.Parameters.Add(PARAM)。
      }
      そうであれば(param.Direction == ParameterDirection.Output)
      {


          param.Direction = ParameterDirection.Output。
          t_cmd.Parameters.Add(PARAM)。

      }
      他(param.Direction == ParameterDirection.ReturnValue)であれば
      {

          param.Direction = ParameterDirection.ReturnValue。
          t_cmd.Parameters.Add(PARAM)。
      }
  }


  (t_cmd.Connection.State == ConnectionState.Closed)であれば
  {
      t_cmd.Connection.Open()。
  }




  SqlDataReaderのは、DR = t_cmd.ExecuteReader()。


  DRを返します。


}





#endregion 
#region执行预存进程
公共int型ExecStoreProc(文字列sqlstr)//不带任何参数
{
  t_cmd =新しいSqlCommandオブジェクト(sqlstr、GetConn());
  t_cmd.CommandType = CommandType.StoredProcedure;
  IF(t_cmd.Connection.State == ConnectionState.Closed)
  {
      t_cmd.Connection.Open()。
  }
  INT N = t_cmd.ExecuteNonQuery()。

  Nを返します。


}


公共INT ExecStoreProc(文字列sqlstr、SqlParameter []パラメータ)//执行StoreProcdurce并带N组参数
{
  t_cmd =新しいSqlCommandオブジェクト(sqlstr、GetConn())。
  t_cmd.CommandType = CommandType.StoredProcedure;

  foreachの(パラメータのSqlParameterのPARAM)
  {
      IF(param.Direction == ParameterDirection.Input)
      {
          param.Direction = ParameterDirection.Input。
          t_cmd.Parameters.Add(PARAM)。
      }
      他(param.Direction == ParameterDirection.Output)であれば
      {


          param.Direction = ParameterDirection.Output。
          t_cmd.Parameters.Add(PARAM)。

      }
      他(param.Direction == ParameterDirection.ReturnValue)であれば
      {
          param.Direction = ParameterDirection.ReturnValue。
          t_cmd.Parameters.Add(PARAM)。
      }



  }


  (t_cmd.Connection.State == ConnectionState.Closed)であれば
  {
      t_cmd.Connection.Open()。
  }


  INT N = t_cmd.ExecuteNonQuery()。

  N-リターン;


}



#endregionの
#region戻りデータセットを取得、データテーブル(DS、DT)


      公衆GetDataTableデータテーブルを返し//データテーブル(SqlStr文字、文字列テーブル)
      {
          試み
          {
              t_dtをデータテーブル新しい新=();
              t_da.SelectCommand = t_cmd (SqlStr、GetConn());

              t_da.Fill(t_dt);
              戻りt_dt;

          }
          キャッチ(例外EX)
          {

              スローEX;
          }


      }


      パブリックGetDataTableデータテーブルを返す//データテーブル(SqlStr文字、文字列テーブル、SqlParameter []パラメータ)
      {
          試します
          {
              t_dt =新しいデータテーブル()。



              t_cmd =新しいSqlCommandオブジェクト(SqlStr、GetConn());


              foreachの(パラメータのSqlParameterのPARAM)
              {
                  (param.Direction == ParameterDirection.Input)であれば
                  {
                      param.Direction = ParameterDirection.Input。
                      t_cmd.Parameters.Add(PARAM)。
                  }
                  他(param.Direction == ParameterDirection.Output)であれば
                  {


                      param.Direction = ParameterDirection.Output。
                      t_cmd.Parameters.Add(PARAM)。

                  }
                  そうであれば(param.Direction == ParameterDirection.ReturnValue)
                  {

                      param.Direction = ParameterDirection.ReturnValue。
                      t_cmd.Parameters.Add(PARAM)。
                  }
              }
              
              t_da.SelectCommand = t_cmd。

              t_da.Fill(t_dt)。
              t_dt返します。

          }
          キャッチ(例外例)
          {

              EXを投げます。
          }


      }




      //返回データセットパブリックデータセットGetDataSet(文字列SqlStr、文字列テーブル)
      {
          試みます
          {
          t_ds =新しいデータセット();
          t_cmd =新しいSqlCommandオブジェクト(SqlStr、GetConn());
          t_da.SelectCommand = t_cmd。
          
          t_da.Fill(t_ds、表)。
          t_dsを返します。

          }
          キャッチ(例外例)
          {

              EXを投げます。
          }

       
      }

      パブリックデータセットGetDataSet(ストリングSqlStr、文字列テーブルは、SqlParameter []パラメータ)//返回データセットは
      {
          試みる
          {
              t_ds =新しいデータセット()。
              t_cmd =新しいSqlCommandオブジェクト(SqlStr、GetConn());

              foreachの(パラメータのSqlParameterのPARAM)
              {
                  IF(param.Direction == ParameterDirection.Input)
                  {
                      param.Direction = ParameterDirection.Input。
                      t_cmd.Parameters.Add(PARAM)。
                  }
                  他(param.Direction == ParameterDirection.Output)であれば
                  {


                      param.Direction = ParameterDirection.Output。
                      t_cmd.Parameters.Add(PARAM)。

                  }
                  他(param.Direction == ParameterDirection.ReturnValue)であれば
                  {

                      param.Direction = ParameterDirection.ReturnValue。
                      t_cmd.Parameters.Add(PARAM)。
                  }
              }


              t_da.SelectCommand = t_cmd。

              t_da.Fill(t_ds、表)。
              t_dsを返します。

          }
          キャッチ(例外例)
          {

              EXを投げます。
          }


      }
      #endregion 
#region释放对象


      公共ボイドDBFree()
      {

          IF(t_cmd.Connection.State == ConnectionState.Open)
          {
         t_cmd.Connection.Close()。
         t_cmd.Connection.Dispose();
         t_conn = NULL;
          }


          (!= nullのをt_cmd)であれば
          {
          t_cmd.Dispose();
          
          }


          IF(t_ds = NULL!)
          { 
           t_ds.Dispose()。
          }


          IF(t_dt = NULL!)
          {
              t_dt.Dispose()。
          }
          
          IF(t_da = NULL!)
          { 
              t_da.Dispose()。
          }
      }

#endregion

      }

}

オリジナル:大列  独自のデータアクセスクラスを記述するために


おすすめ

転載: www.cnblogs.com/petewell/p/11458070.html
おすすめ