作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在处理一个网络表单,该表单接收一个字符串,该字符串包含带有 SQL 参数的 SQL 查询语句。它为每个参数生成一个 ASP.NET 控件,然后将每个控件的值分配给将由 SqlCommand
使用的 SQL 查询字符串的参数。填写DataAdapter
.
我在管理可选参数方面遇到了一些问题。
例如
1) 将字符串传递给页面:
string query = "SELECT * FROM Table WHERE Field1=@P1 AND field2=@P2";
2) 为每个参数生成一个网页控件
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 语句。
最佳答案
将您的查询更改为最少:
string query="SELECT * FROM Table WHERE Field1=@P1
然后在其余部分附加一个条件:
if(P2.Text != "")
{
cmd.Parameters.AddWithValue("@P2",P2.Text);
query += " AND field2=@P2";
}
关于c# - 在 WHERE 子句中操作可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15945942/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!