使用带有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语句?
答案 0 :(得分: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。
答案 1 :(得分:1)
在将字符串值传递给构造函数之前,需要将它们连接在一起:
SqlCommand cmd = new SqlCommand(String.Format("{0};{1}", sqlVar1, sqlVar2), myConn);