1

使用带有 C# 的 ASP.NET,我正在尝试使用不同的 SQL 命令显示大量 GridView。由于 SQL 语句很长,我想包含变量而不是实际语句,但我不确定如何将它们插入到 SqlCommand 方法中。没有变量,代码如下所示

SqlCommand cmd = new SqlCommand("SELECT....; SELECT...." , myConn);

但不是实际的语句,我想用字符串变量替换上面的 sql 语句,如下所示......

string sqlVar1 = "SELECT.....";
string sqlVar2 = "SELECT....";

如何将变量合并到上述代码中?下面不起作用。

SqlCommand cmd = new SqlCommand(sqlVar1; sqlVar2, myConn);

是否有我遗漏的标点符号,或者可能需要额外的代码来识别我使用的是变量而不是实际的 sql 语句?

4

2 回答 2

2

您只需连接字符串:

SqlCommand cmd = new SqlCommand(sqlVar1 + ';' + sqlVar2,  myConn);

如果您有多个命令 - 更好的方法是使用 StringBuilder 来收集它们,并将 StringBuilder.ToString() 作为 SqlCommand 构造函数的第一个参数:

StringBuilder sb = new StringBuilder();

sb.Append("SELECT .....;");
sb.Append("SELECT .....;");

SqlCommand cmd = new SqlCommand(sb.ToString(), myConn);

但最好的方法是在存储过程中设置所有 SELECT 命令并调用该 SP。

于 2013-10-16T20:44:40.693 回答
1

在将字符串值传递给构造函数之前,您需要将它们连接在一起:

SqlCommand cmd = new SqlCommand(String.Format("{0};{1}", sqlVar1, sqlVar2), myConn);
于 2013-10-16T20:46:18.030 回答