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中文网其他相关文章!