为空字段调整查询

本文关键字:查询 调整 字段 | 更新日期: 2023-09-27 18:11:20

我在Visual studio中做

SELECT calendar.info, …. ,
calendar.ino AS Expr1, doss.dosno
FROM calendar INNER JOIN
doss ON calendar.ino = doss.ino AND calendar.ino = doss.ino
WHERE (calendar.b_date >= @cboDateFrom) AND  (calendar.b_date <= @cboDateTo) AND 
calendar.aguv like @cboUitvoerder)

这是有效的,但是如果@cboUitvoerder是空的,我怎么能使它工作,它会放弃最后一个AND,所以它会返回字段aguv的所有项目?

在我的代码中我有

private void btnRefresh_Click(object sender, EventArgs e)
    {
        string x = cboUitvoerder.SelectedItem.ToString();
        this.calendarTableAdapter.Fill(this.togaDataSet.calendar, this.cboDateFrom.Value.Date, this.cboDateTo.Value.Date, x);
    }`

为空字段调整查询

你能不能这样做:

WHERE (calendar.b_date >= @cboDateFrom) AND (calendar.b_date <= @cboDateTo) 
AND
((@cboUitvoerder IS NULL) OR (calendar.aguv LIKE @cboUitvoerder))

我认为你可以使用Dr Rob的解决方案,但是如果你想传递null作为@cboUitvoerder,你应该使用DBNull。