ADO.NET 5つのオブジェクトのCRUDの使用

            文字列 ConnStr = " データソース= .;初期カタログ= ADO_DEMO;統合セキュリティ=真" ;

            #regionのSqlConnectionを使用
             する@ ステップ:新しいSqlConnectionオブジェクト 
            のSqlConnection sqlConn = 新しい新しいSqlConnectionオブジェクト();
            
            //は、接続文字列SqlConnectionオブジェクトに設定 
            SqlConn.ConnectionString = ConnStrを。

            // データセットまたはDataTableの場合は、データベースを開くことができない、またはデータベース開く必要があり
            SqlConn.Openを();
             #endregionを

            #regionの追加、削除、変更操作するSqlCommandオブジェクト
             // 新しいSqlCommandオブジェクト 
            SqlCommandオブジェクトCMD = 新しい新しいSqlCommandオブジェクト();

            // 設定された接続SqlCommandオブジェクト属性、即ち:SqlConn(SqlConnectionオブジェクトタイプ) 
            cmd.Connection = sqlConn。

            // 実装のINSERT / UPDATE / SQL文を削除した場合、直接のCommandTextプロパティを提供することができる
             // ストアドプロシージャが実行された場合、属性がCommandTypeをCommandType.StoredProcedureに設定されている必要があり 
            cmd.CommandText = " INSERT INTO Ex_Class VALUES(『1707A』、 19)" ;

            // 接続とCommandTextプロパティプロパティを設定した後、直接SQL文を実行することができ
             // cmd.ExecuteNonQueryを();

            // 実行は、データベースを閉じ、リソースを解放するために完了した後で
            )(SqlConn.Closeを。
            SqlConn.Dispose();
            #endregion

            #regionは、(レコードセット)データを得るために、SqlDataReaderのSqlCommandオブジェクトとオブジェクトを使用して
             // 接続が開いていないかどうかを決定する、データベースを開くために、閉じられる
            IF(SqlConn.State == ConnectionState.Closed)
            {
                SqlConn.ConnectionString = ConnStr。
                SqlConn.Open();
            }
            
            // 新しいSqlCommandオブジェクトのオブジェクト 
            SqlCommandオブジェクトのcmd_select = 新しい新しいSqlCommandオブジェクト();

            // 設定された接続SqlCommandオブジェクト属性、即ち:SqlConn(SqlConnectionオブジェクトタイプ) 
            cmd_select.Connection = sqlConn。

            // あなたは直接のCommandTextプロパティを設定することができますINSERT / UPDATE / DELETE SQL文を実行している場合
             // ストアドプロシージャを実行している場合、あなたはCommandType.StoredProcedureにCommandTypeプロパティを設定しなければならない 
            = cmd_select.CommandText SELECT * Ex_Class FROM 」を

            // 呼び出しExecuteReaderメソッドレコードが返され、SqlDataReaderオブジェクトによって受信され、 
            SqlDataReaderのSDR = cmd_select.ExecuteReader()。

            // 1つのレコードのみがSqlDataReaderのが返された場合、以下の方法を取得するために使用することができ、
            IF (sdr.Read())
            {
                文字列クラス名= SDR [ " クラス名" ] .ToString();
                INT ClassCount = Convert.ToInt32(SDR [ " ClassCount " ])。

                Response.Writeを(文字列 .Format(" SqlDataReaderの返回一条记录:クラス名:{0} ClassCount:{1} <br>ログイン" 、クラス名、ClassCount))。
            }

            // SqlDataReaderの複数のレコードが返された場合、以下のメソッドがレコードを取得するために使用され、一連の格納することができます 
            一覧<モデル> = DataListの新しい新しいリスト<モデル> ();
             しばらく(sdr.Read())
            {
                モデルM = モデル()。
                m.ClassName = SDR [ " クラス名" ] .ToString();
                m.ClassCount = Convert.ToInt32(SDR [ " ClassCount " ])。
                DataList.Add(M)。
            }

            // :その後のようなデータセットを使用することができる
            foreachのVARの P におけるデータリスト)
            {
                Response.Writeを(文字列 .Format(" SqlDataReaderの返回多条记录:クラス名:{0} ClassCount:{1} <br>ログイン" 、p.ClassName、p.ClassCount))。
            }


            // 使用後に閉じて、情報をリリースするSqlDataReaderのを注意してください
            )(sdr.Closeを。
            sdr.Dispose();
            SqlConn.Close();
            SqlConn.Dispose();
            #endregion

            #region DataTableオブジェクトの取得データ(レコードセット)を使用して、
             / * 注:記録データテーブルは、データベースを開くことなく、取得された場合、すなわち、オープン()* /

            SqlConn.ConnectionString = ConnStr。

            // 新しいSqlCommandオブジェクトは 
            = cmd_datatable SqlCommandオブジェクトの新しい新しいSqlCommandオブジェクトを();

            // 設定された接続SqlCommandオブジェクト属性、即ち:SqlConn(SqlConnectionオブジェクトタイプ) 
            cmd_datatable.Connection = sqlConn。

            // あなたは直接のCommandTextプロパティを設定することができますINSERT / UPDATE / DELETE SQL文を実行している場合
             // ストアドプロシージャを実行している場合、あなたはCommandType.StoredProcedureにCommandTypeプロパティを設定しなければならない 
            = cmd_datatable.CommandText SELECT * Ex_Class FROM 」を

            // SqlDataAdapterオブジェクトを作成し、パディングデータがデータテーブルに使用される 
            のSqlDataAdapter SDA = 新しい新しいSqlDataAdapterオブジェクト();

            // 設定SqlDataAdapterオブジェクトに対応するSqlCommandオブジェクト 
            sda.SelectCommand = cmd_datatable。

            // SqlDataAdapterオブジェクト上でデータ伝送を受信するため、データテーブルオブジェクトを作成し、オブジェクト 
            データテーブルDT = 新しい新しいデータテーブル()と、

            // 塗りつぶしSqlDataAdapterオブジェクトのメソッド呼び出し、データテーブル移入するデータ
            sda.Fill(dt)を、

            // 次に、データは、最初の行の値を取得するように、データテーブルで使用することができる:
            文字列 MyClassName = Convert.ToString(dt.Rows [ 0 ] [ " クラス名" ]);
             int型 MyClassCount = Convert.ToInt32(dt.Rows [ 0 ] [ " ClassCount " ])。

            Response.Writeを(文字列 .Format(" データテーブル戻りレコード:クラス名:ClassCount {0}:{} <br>ページ1 " 、MyClassName、MyClassCount))。

            //は、データを介して使用することが可能でデータテーブルforeachの 
            一覧<モデル> = DLIST 新しい新しいリスト<モデル> ();
             foreachの(DRのDataRow dt.Rows)
            {
                モデルのObj = モデル();
                Obj.ClassName = Convert.ToString(DR [ " クラス名" ])。
                Obj.ClassCount = Convert.ToInt32(DR [ " ClassCount " ])。
                DList.Add(OBJの);

                // 直接出力値 
                のResponse.Write(文字列 .Format(" データテーブルは、複数のレコードを返す:クラス名:ClassCount {0}:{} <br>ログイン1。"、DR [ " クラス名" ]、DR [ " ClassCount " ]))。
            }


            // DataTableに、上記の手動変換を添加した戻り値の型の一覧場合は、以下の方法を使用することができる
             // 注:Newtonsoft.Jsonを使用して名前空間を導入する必要性を

            // ステップ:DataTableの文字列にデータベース配列
            のvar JSON = JsonConvert.SerializeObject(DT);
            一覧 <モデル> NewList = 新しいリスト<モデル> ();

            // ステップ:直列化された文字列は、Listオブジェクトをデシリアライズ 
            NewList JsonConvert.DeserializeObject = <リスト<>>モデル(JSON);
             #endregion

            #regionは、ストアドプロシージャを呼び出すためにSqlCommandオブジェクトを使用して
             IF(SqlConn.State == ConnectionState.Closed)
            {
                SqlConn.ConnectionString = ConnStr。
                SqlConn.Open();
            }

            // 新しいSqlCommandオブジェクトは、 
            CMD_PROC = SqlCommandオブジェクト新新)(SqlCommandオブジェクトを。

            // 設定された接続SqlCommandオブジェクト属性、即ち:SqlConn(SqlConnectionオブジェクトタイプ) 
            cmd_proc.Connection = sqlConn。

            // SqlCommandオブジェクトは、ストアドプロシージャを実行する場合は、SqlCommandオブジェクトCommandTypeをCommandType.StoredProcedureに設定する必要がある 
            cmd_proc.CommandType = CommandType.StoredProcedureと、

            // というストアド・プロシージャのSqlCommandオブジェクトの名前を設定し 
            cmd_proc.CommandText = PROC_Ex_Classを

            // 必要なパラメータは、ストアドプロシージャを設定
             // 直接割り当ては、入力パラメータ、出力パラメータを必要とする、または戻り値がある場合、唯一のパラメータの方向性を設定する必要がある場合 
            SqlParameterのsql_parm1 = 新しい新しい SqlParameter(@ClassName 、SqlDbType.NVarChar、50 );

            // 入力されたパラメータの設定値 
            sql_parm1.Value = 1909B 

            // パラメータは、SqlCommandオブジェクトのParametersコレクションに追加
            cmd_proc.Parameters.Add(sql_parm1を)。

            // 第二パラメータ 
            SqlParameterのsql_parm2 = 新しい新しい SqlParameter(" @ClassCount "、SqlDbType.NVarChar、50 )。

            // 入力されたパラメータの設定値 
            sql_parm2.Value = 10 

            // パラメータは、SqlCommandオブジェクトのParametersコレクションに追加
            cmd_proc.Parameters.Add(sql_parm2を)。

            // 第三のパラメータ:の値は設定せず、出力パラメータDirectionプロパティを設定 
            = SqlParameterのsql_parm3 新しい新しい SqlParameter(@Info 、SqlDbType.NVarChar、100 )。
            sql_parm3.Direction = ParameterDirection.Output。
            cmd_proc.Parameters.Add(sql_parm3)。

            // 最初の4つのパラメータ:ストレージ・リターンを設定する方向の値を設定することなく、属性値 
            = SqlParameterのsql_parm4 新しい新しい SqlParameter(@ReturnVal 、SqlDbType.NVarChar、100 )。
            sql_parm4.Direction = ParameterDirection.ReturnValue。
            cmd_proc.Parameters.Add(sql_parm4)。

            // ストアドプロシージャの実行、SqlCommandオブジェクトのExecuteNonQueryメソッドを呼び出し
            cmd_proc.ExecuteNonQueryを();

            // ストアドプロシージャが完了すると、出力パラメータと戻り値が自動的に割り当てられたパラメータ
            
            // これは、プロシージャの出力パラメータである
            文字列情報= Convert.ToString(sql_parm3.Value)。

            // この値を返す手続き記憶されている
            INT ReturnVal = Convert.ToInt32(sql_parm4.Value)を、

            // 我々出力でき両者の結果 
            のResponse.Write(文字列 .Format(" ストアドプロシージャの実行結果:出力パラメータ:{0}、戻り値:{} 1 " 、情報、ReturnVal));
             #endregion

 

おすすめ

転載: www.cnblogs.com/superfeeling/p/11698334.html
おすすめ