C# での複数行の .SQL スクリプト ファイルの信頼性の高い実行
C# で SQL スクリプトを実行すると、データベース操作の自動化やデータベース オブジェクトの管理に役立ちます。この記事では、複数の SQL ステートメントを含む .SQL ファイルを実行するためのソリューションを検討し、その過程で発生するいくつかの課題に対処します。
この記事で提供されているコードは、ODP.NET と Process オブジェクトを使用して SQL ファイルを実行しようとしていますが、ExecuteNonQuery メソッドは複数行の SQL ステートメントを正しく処理しないことが多く、UseShellExecute の使用時に WaitForExit メソッドがハングする可能性があります。
ただし、C# の Microsoft.SqlServer.Management.Smo 名前空間を使用すると、より信頼性が高く完全なソリューションを実現できます。改良されたコード スニペットは次のとおりです:
<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>
このコード内:
この方法では、スクリプト ファイルから複数行の SQL ステートメントを正常に実行でき、SQL スクリプトのニーズに対してよりクリーンで強力なソリューションを提供できます。
以上がC# から複数行の .SQL スクリプト ファイルを確実に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。