C# 在c中执行sql命令的最佳方法#

C# 在c中执行sql命令的最佳方法#,c#,sql-server,sqlcommand,sqlcmd,C#,Sql Server,Sqlcommand,Sqlcmd,我需要对SQLServer2008R2进行一些sql查询。命令是: C:> sqlcmd –S .\APPSDB 1> use Example_database 2> go 1> Select SiteName, SiteID, Platform, Description, AdminUser from dbo.ExampleInfo 2> go 我想用C语言开发一个控制台应用程序来运行这个查询。我的问题是:什么是合适的方法?我应该将上述命令放入SQL脚本并使用进

我需要对SQLServer2008R2进行一些sql查询。命令是:

C:> sqlcmd –S
.\APPSDB
1> use
Example_database
2> go
1> Select SiteName, SiteID, Platform, Description, AdminUser from dbo.ExampleInfo
2> go
我想用C语言开发一个控制台应用程序来运行这个查询。我的问题是:什么是合适的方法?我应该将上述命令放入SQL脚本并使用进程来执行此脚本,还是应该使用标准的C#SQL API(如
SqlConnection
)来执行此操作?比如:

string cmdStr = @"....." //the above command
using (var connection = new SqlConnection(ConnectionString))
{
    using (var command = connection.CreateCommand())
    {
        connection.Open();
        command.CommandText = cmdStr;
        using (var reader = command.ExecuteReader())
        {
            do
            {
                while (reader.Read())
                {             
                    Console.WriteLine(reader["SiteName"].ToString());
                    Console.WriteLine(reader["SiteName"].ToString());
                    // the rest
                }
            Console.WriteLine("--next command--");
        } while (reader.NextResult());
    }
}

对此,不需要
sqlcmd

CommandText
属性应仅包含如下查询:

string cmdStr = @"Select SiteName, SiteID, Platform, Description, AdminUser 
                  from dbo.ExampleInfo";

这是你需要做出的选择。如果这个应用开始增长(我们都知道大多数应用都是这样),你应该使用sql连接对象并调用存储过程。否则脚本就可以了。为什么要否决我的问题?我在一个sql server实例APPSDB下有几个数据库。@JonH-meh;存储过程可能被高估;参数化SQL在大多数情况下都非常合适cases@ericCommandText中唯一需要的是“选择…”我在一个sql server实例下有多个数据库。我想我需要使用“use-Example\u-Database”或“use-Example\u-Database1”等。单个cmdStr可能不起作用。@ericyoung这应该在连接字符串中,在连接字符串属性中提供。@eric您根本不需要它:它在连接中string@Mahmound-贾马尔明白了。谢谢