【发布时间】:2013-04-03 11:31:52
【问题描述】:
我正在处理一个网络表单,它接收一个字符串,该字符串包含一个带有 SQL 参数的 SQL 查询语句。它为每个参数生成一个 ASP.NET 控件,然后将每个控件的值分配给 SQL 查询字符串的参数,SqlCommand 将使用该参数填充DataAdapter。
我在管理可选参数时遇到了一些问题。
例如
1) 将字符串传递给页面:
string query = "SELECT * FROM Table WHERE Field1=@P1 AND field2=@P2";
2) 为每个参数生成一个web控件
TextBox P1 = new TextBox();
P1.ID = "P1";
...
TextBox P2 = new TextBox();
P2.ID = "P2";
...
PanelParameters.Controls.Add(P1);
PanelParameters.Controls.Add(P1);
3) 点击时将每个参数的值作为参数传递给SqlCommand:
SqlCommand cmd = new SqlCommand(query, conn);
cmd.Parameters.AddWithValue("@P1", P1.Text);
cmd.Parameters.AddWithValue("@P2", P2.Text);
4) 在这里没关系!
但是如果一个参数是可选的我该如何管理它呢?
如果 P2 是可选的,则用户无法编译它,在这种情况下,我不想设置 P2 = NULL(设置参数 DbNull.Value 的值),但我希望 P2 将从查询 SQL。
你能帮帮我吗?
* 更新 * 我无法编辑收到的查询,因为它包含非常复杂的 SQL 语句。
【问题讨论】:
标签: c# asp.net sql sqlcommand