首頁 >後端開發 >C++ >如何在C#中高效率執行多行SQL腳本檔案?

如何在C#中高效率執行多行SQL腳本檔案?

Patricia Arquette
Patricia Arquette原創
2025-01-18 14:51:09506瀏覽

How Can I Efficiently Execute Multi-Line SQL Script Files in C#?

使用C#執行.SQL腳本檔

在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>

在此方法中:

  • SMO使用與目標資料庫的連線進行初始化。
  • 腳本從檔案中讀取並傳遞給SMO以執行。
  • ExecuteNonQuery用於在SQL Server執行個體上執行腳本。

以上是如何在C#中高效率執行多行SQL腳本檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn