C#中實(shí)現(xiàn)一次執(zhí)行多條帶GO的sql語句實(shí)例
更新時(shí)間:2015年09月26日 16:23:47 作者:yenange
這篇文章主要介紹了C#中實(shí)現(xiàn)一次執(zhí)行多條帶GO的sql語句,以實(shí)例形式較為詳細(xì)的分析了C#執(zhí)行sql語句的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
本文實(shí)例講述了C#中實(shí)現(xiàn)一次執(zhí)行多條帶GO的sql語句。分享給大家供大家參考。具體如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Collections; using System.Text.RegularExpressions; using System.Data.SqlClient; namespace ConsoleApplication1 { class Program { //注: 在cmd.ExecuteNonQuery()是不允許語句中有GO出現(xiàn)的, 有則出錯(cuò)。 static string connectionString = "server=20111011-2204\\SQLSERVER2008;uid=ecuser;pwd=1234;database=Stu;"; static void Main(string[] args) { string sql = @"Alter table Student add DateBak varchar(16) go Update Student set DateBak = convert(char,getdate(),101) go Update Student set Memo = DateBak go Alter table Student drop column DateBak go "; Console.WriteLine("1. 不用事務(wù):"); ExecuteSqlWithGo(sql); Console.WriteLine("2. 用事務(wù):"); ExecuteSqlWithGoUseTran(sql); Console.ReadLine(); } public static void ExecuteSqlWithGo(String sql) { int effectedRows = 0; using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; try { //注: 此處以 換行_后面帶0到多個(gè)空格_再后面是go 來分割字符串 String[] sqlArr = Regex.Split(sql.Trim(), "\r\n\\s*go", RegexOptions.IgnoreCase); foreach (string strsql in sqlArr) { if (strsql.Trim().Length > 1 && strsql.Trim()!="\r\n") { cmd.CommandText = strsql; effectedRows = cmd.ExecuteNonQuery(); } } } catch (System.Data.SqlClient.SqlException E) { throw new Exception(E.Message); } finally { conn.Close(); } } } public static void ExecuteSqlWithGoUseTran(String sql) { using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; SqlTransaction tx = conn.BeginTransaction(); cmd.Transaction = tx; try { //注: 此處以 換行_后面帶0到多個(gè)空格_再后面是go 來分割字符串 String[] sqlArr = Regex.Split(sql.Trim(), "\r\n\\s*go", RegexOptions.IgnoreCase); foreach (string strsql in sqlArr) { if (strsql.Trim().Length > 1 && strsql.Trim() != "\r\n") { cmd.CommandText = strsql; cmd.ExecuteNonQuery(); } } tx.Commit(); } catch (System.Data.SqlClient.SqlException E) { tx.Rollback(); throw new Exception(E.Message); } finally { conn.Close(); } } } } }
希望本文所述對大家的C#程序設(shè)計(jì)有所幫助。
相關(guān)文章
asp.net core 使用 tensorflowjs實(shí)現(xiàn) face recognition的源代碼
tensorflowjs,在該項(xiàng)目中使用了ml5js這個(gè)封裝過的機(jī)器學(xué)習(xí)JavaScript類庫, 使用起來更簡單,本文給大家分享asp.net core 使用 tensorflowjs實(shí)現(xiàn) face recognition的源代碼,需要的朋友參考下吧2021-06-06C# 如何實(shí)現(xiàn)一個(gè)帶通知的List<T>
這篇文章主要介紹了C# 如何實(shí)現(xiàn)一個(gè)帶通知的List<T>,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下2021-02-02C#使用XmlDocument或XDocument創(chuàng)建xml文件
這篇文章主要為大家詳細(xì)介紹了C#使用XmlDocument或XDocument創(chuàng)建xml文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10C#中使用WinRAR實(shí)現(xiàn)加密壓縮及解壓縮文件
這篇文章主要介紹了C#中使用WinRAR實(shí)現(xiàn)加密壓縮及解壓縮文件,本文直接給出實(shí)例代碼,代碼中包含詳細(xì)注釋,需要的朋友可以參考下2015-07-07