C#中实现一次执行多条带GO的sql语句实例

2019-12-26 13:34:19王振洲

易采站长站为您分析C#中实现一次执行多条带GO的sql语句,以实例形式较为详细的分析了C#执行sql语句的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了C#中实现一次执行多条带GO的sql语句。。具体如下:

 

 
  1. using System;  using System.Collections.Generic; 
  2. using System.Linq;  using System.Text; 
  3. using System.Collections;  using System.Text.RegularExpressions; 
  4. using System.Data.SqlClient;   namespace ConsoleApplication1 
  5. {  class Program 
  6. {  //注: 在cmd.ExecuteNonQuery()是不允许语句中有GO出现的, 有则出错。 
  7. static string connectionString = "server=20111011-2204SQLSERVER2008;uid=ecuser;pwd=1234;database=Stu;";  static void Main(string[] args) 
  8. {  string sql =  
  9. @"Alter table Student add DateBak varchar(16)   go  
  10. Update Student set DateBak = convert(char,getdate(),101)  go  
  11. Update Student set Memo = DateBak  go  
  12. Alter table Student drop column DateBak   go  
  13. ";  Console.WriteLine("1. 不用事务:"); 
  14. ExecuteSqlWithGo(sql);  Console.WriteLine("2. 用事务:"); 
  15. ExecuteSqlWithGoUseTran(sql);  Console.ReadLine(); 
  16. }  public static void ExecuteSqlWithGo(String sql) 
  17. {  int effectedRows = 0; 
  18. using (SqlConnection conn = new SqlConnection(connectionString))  { 
  19. conn.Open();  SqlCommand cmd = new SqlCommand(); 
  20. cmd.Connection = conn;  try 
  21. {  //注: 此处以 换行_后面带0到多个空格_再后面是go 来分割字符串 
  22. String[] sqlArr = Regex.Split(sql.Trim(), "rns*go", RegexOptions.IgnoreCase);   foreach (string strsql in sqlArr) 
  23. {  if (strsql.Trim().Length > 1 && strsql.Trim()!="rn")