C#と複数のSQL文を実行

C#の 


空InsertMultiBoardBarcodeRecプライベート()
{//データのリストが空にすることはできません決定.....
IF(dataGridView1.RowCount == 0)
{
MessageBox.Show(「リストが空の印刷、お問い合わせくださいパズルSN ...」、 "プロンプトウィンドウ...「);
リターン;
}

一覧<Models.MultiBoardBarCoeRec> listPrintLists =新しいリスト<Models.MultiBoardBarCoeRec>();
//获取列表数添加到listPrintLists集合...
//获取服务器时间
Models.GetSQLServerNowTime getSQLServerNowTime =新しいModels.GetSQLServerNowTime()。
getSQLServerNowTime = DalGetSQLServerNowTime.SQLServerNowTime(getSQLServerNowTime)。
文字列ダ= getSQLServerNowTime.NowTime。
foreachの(DataGridViewRow DGR dataGridView1.Rowsで)
{
IF(dgr.Cells [4] .Valueの== NULL)
{
ブレーク。
}
listPrintLists.Add(新しいModels.MultiBoardBarCoeRec {
WONO = dgr.Cells [5] .Value.ToString()、
ProductGroupID = ProductGroupID、
FirstMBBC = dgr.Cells [4] .Value.ToString()、
EndMBBC = dgr.Cells [4] .Value.ToString()、
OutputDate = DA、
WorkerID = texWhoPrint.Text.Trim()
})。
}
DalProductInfo.MultiBoardBarCoeRec(listPrintLists)。
// BOOL tkdo = DalProductInfo.MultiBoardBarCoeRec(barCoeRec)。
}

 
        公共 BOOL MultiBoardBarCoeRec(一覧<Models.MultiBoardBarCoeRec>   objBoardBarCoeRec)
        { 
            // 文字列[] = {AA "AA"、 "BB"、 "CC"};        
          
            // 複数のSQL文を保持するためのリストのセットを定義 
            リスト< 文字列 > = sqlList 新しい新しいリスト< 文字列 > ();
             // sqlList.Add(AA [0] .ToString());
             // sqlList.Add(AA .ToString()[1]); 

            のためint型 I = 0 ; I <objBoardBarCoeRec.Count; I ++ 
            { 
                文字列 sqlstr = "インサートMultiBoardBarCodeRec(WONO、ProductGroupID、FirstMBBC、EndMBBC、OutputDate、WorkerID)" ; 
                sqlStr + = " の値({0}、{1}、{2}、{3}、{4 }」、 '{5}')" ; 
                sqlStr = ストリング.Format(sqlStr、objBoardBarCoeRec [I] .WONO、objBoardBarCoeRec [I] .ProductGroupID、objBoardBarCoeRec [I] .FirstMBBC、
                objBoardBarCoeRec [I] .EndMBBC、objBoardBarCoeRec [I ] .OutputDate、I); 

                sqlList.Add(sqlStr.ToString()); 
            } 
            戻りSQLHelper.UpdateByTran(sqlList);       
        }
    
 ///  <要約> 
        /// 有効トランザクション複数のSQL文を提出する
         ///  </要約> 
        ///  ます。<param name = "sqlList"> SQL文のコレクション</ param>の
        ///  <リターンA> リターンBOOLタイプ、トランザクションの成功の代表が行っ</戻り値> 
        パブリック 静的 BOOL UpdateByTran(一覧< 文字列 > sqlList)
        { 
            SqlConnectionのコン = 新しい新; SqlConnectionオブジェクト(CONNSTRING)
            SqlCommandオブジェクトCMD = 新しい新しいSqlCommandオブジェクト(); 
            cmd.Connection = コネティカットを、
             試して 
            {
                conn.Open();
                
                cmd.Transaction = conn.BeginTransaction(); // オープントランザクション
                 // ループの実行SQL文
                のforeachVAR itemSql sqlList)
                { 
                    cmd.CommandText = itemSql;                  
                    cmd.ExecuteNonQuery(); 
                } 
                cmd.Transaction.Commit(); / / トランザクション(実際のデータがデータベースから改変)コミット
                リターン trueに; 
            } 
            キャッチ(例外EX)
            { 
                IF(cmd.Transaction!= NULL )を
                    cmd.Transaction.Rollback(); // ロールバックトランザクション(「通常業務」元に戻すリターン)
                スロー 新新(例外エラーがトランザクションメソッドを呼び出す表示されます: + ex.Message);
                 スロー; 
            } 
            最後に
            { 
                IF(cmd.Transaction != NULL 
                { 
                    cmd.Transaction = NULL ; // クリアトランザクション
                } 
                はconn.close(); 
            } 
        }

 

おすすめ

転載: www.cnblogs.com/Striveyoungfellow/p/12526765.html