在C#中,執行.SQL腳本檔案需要特別的考慮。這個問題討論了運行此類文件(可能包含跨多行的斷句語句)的難度。
挑戰與解決方法
嘗試使用ODP.NET的ExecuteNonQuery執行腳本被證明是無效的。產生一個進程來呼叫sqlplus在掛起和輸出重定向方面遇到了問題。
使用Microsoft SQL Server Management Objects (SMO)的解決方案
此處提供的解決方案利用SMO,這是一個用於管理和設定SQL Server的託管程式碼API。下面是一個示範此方法的程式碼片段:
<code class="language-csharp">using Microsoft.SqlServer.Management.Smo; using Microsoft.SqlServer.Management.Common; using System.IO; using System.Data.SqlClient; public partial class ExcuteScript : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string sqlConnectionString = @"Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=ccwebgrity;Data Source=SURAJIT\SQLEXPRESS"; string script = File.ReadAllText(@"E:\Project Docs\MX462-PD\MX756_ModMappings1.sql"); SqlConnection conn = new SqlConnection(sqlConnectionString); Server server = new Server(new ServerConnection(conn)); server.ConnectionContext.ExecuteNonQuery(script); } }</code>
在此方法中:
以上是如何在C#中高效率執行多行SQL腳本檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!