执行未存储在DB上的查询

时间:2013-08-06 14:28:47

标签: c# sql

在工作中,我们有时需要执行一个SQL脚本(我们打开这个.SQL文件 - 存储为C:\ SQLScript \ man.sql - ,设置正确的参数然后执行它)。 现在我已经创建了一个C#应用程序,这个应用程序在我的计算机上运行,​​并对数据库服务器(.sql脚本工作的同一服务器)执行一些操作,其中一个操作包括执行该脚本。

问题是:如果SQL脚本存储为简单文件而不是真正的存储过程,我如何执行(从我的C#应用​​程序)SQL脚本?

3 个答案:

答案 0 :(得分:1)

如果它是一个有效的sql文件并且它按原样执行,那么你所要做的就是

  string query = File.ReadAllText("yoursqlfilePath");
  using (SqlConnection connection = new SqlConnection(
           connectionString))
{
    SqlCommand command = new SqlCommand(query , connection);
    command.Connection.Open();
    command.ExecuteNonQuery();
}

答案 1 :(得分:0)

我相信您可以打开读入的文件,然后执行从文件字符串创建的SQL命令,然后执行命令。

我不确定是否有更好的方法,但我就是这样做的。

答案 2 :(得分:0)

我通常会尝试将其转换为传递所需参数的存储过程。但是你可以看看采用here的方法。它基本上将脚本中的文本读入字符串,然后使用ExecuteNonQuery执行它。您可以在调用ExecuteNonQuery之前修改文本。