在c#中向大型SQL语句添加参数

时间:2014-09-22 06:57:31

标签: c# sql .net sql-server

我有一个庞大且有点复杂的SQL脚本,我在.Net中使用如下..

 using System.Data.SqlClient;
 using System.IO;
 using Microsoft.SqlServer.Management.Common;
 using Microsoft.SqlServer.Management.Smo;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string sqlConnectionString = "Data Source=(local);Initial Catalog=AdventureWorks;Integrated Security=True";
            FileInfo file = new FileInfo("C:\\myscript.sql");
            string script = file.OpenText().ReadToEnd();
            SqlConnection conn = new SqlConnection(sqlConnectionString);
            Server server = new Server(new ServerConnection(conn));
            server.ConnectionContext.ExecuteNonQuery(script);
        }
    }
}

在SQL脚本内部,我有一个ID值,需要是我从代码中传入的参数,我该怎么做?如果我使用SQLCommand,我可以看到脚本变得非常复杂。有关如何实现这一目标的任何建议或想法?

由于

1 个答案:

答案 0 :(得分:0)

您可以通过索引({0}输入String.Format)在文件中指定params,并使用string.format在代码中提供实际值。

        FileInfo file = new FileInfo("C:\\myscript.sql");
        string fileContent = file.OpenText().ReadToEnd();
        //fileContent = "Select * from ABC where COL1 = '{0}'";
        string Col1Value = "Col1Values";
        string fileString = String.Format(fileContent,Col1Value);