首页 >后端开发 >C++ >如何从 C# 可靠地执行多行 .SQL 脚本文件?

如何从 C# 可靠地执行多行 .SQL 脚本文件?

Barbara Streisand
Barbara Streisand原创
2025-01-18 15:02:09589浏览

How Can I Reliably Execute Multi-Line .SQL Script Files from C#?

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 Server 数据库的连接。
  • 然后,我们将 SQL 脚本文件读取到一个字符串中。
  • 使用 Server 和 ServerConnection 类,我们创建与 SQL Server 的连接。
  • 最后,我们使用 ServerConnection 对象上的 ExecuteNonQuery 方法执行 SQL 脚本。

这种方法应该能够成功地从脚本文件执行多行 SQL 语句,并为您的 SQL 脚本需求提供更简洁、更强大的解决方案。

以上是如何从 C# 可靠地执行多行 .SQL 脚本文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn