Asp.net
如何通過 ADO.NET 執行我的 .sql 腳本文件?
我想通過 ADO.NET 使用我的 ASP.NET 網站執行我的 .sql 腳本文件。它怎麼可能不起作用?
當我嘗試
'dbScript is a string and contains contents of the .sql file' Dim cmd As New SqlCommand(dbScript, con) Try con.Open() cmd.ExecuteNonQuery() Catch ex As Exception Finally con.Close() cmd.Dispose() End Try在腳本中執行 GO 語句時出現異常。我該如何解決這個問題?
請參閱我關於在 SQL 中處理 GO 分隔符的部落格文章- 簡單方法。訣竅是使用SMO 的 ExecuteNonQuery()方法。例如,這裡有一些程式碼將執行目錄中的所有腳本,而不考慮 GO 分隔符:
using System; using System.IO; using System.Data.SqlClient; using System.Collections.Generic; //Microsoft.SqlServer.Smo.dll using Microsoft.SqlServer.Management.Smo; //Microsoft.SqlServer.ConnectionInfo.dll using Microsoft.SqlServer.Management.Common; public class RunAllSqlSriptsInDirectory { public static void Main() { string scriptDirectory = "c:\\temp\\sqltest\\"; string sqlConnectionString = "Integrated Security=SSPI;" + "Persist Security Info=True;Initial Catalog=Northwind;Data Source=(local)"; DirectoryInfo di = new DirectoryInfo(scriptDirectory); FileInfo[] rgFiles = di.GetFiles("*.sql"); foreach (FileInfo fi in rgFiles) { FileInfo fileInfo = new FileInfo(fi.FullName); string script = fileInfo.OpenText().ReadToEnd(); SqlConnection connection = new SqlConnection(sqlConnectionString); Server server = new Server(new ServerConnection(connection)); server.ConnectionContext.ExecuteNonQuery(script); } } }