调整空字段的查询

时间:2011-10-13 08:41:07

标签: c# sql visual-studio dataset

在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);
    }`

2 个答案:

答案 0 :(得分:2)

你能做点什么:

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

答案 1 :(得分:0)

我认为您可以使用Rob博士的解决方案,但如果您想将null作为@cboUitvoerder传递,则应使用DBNull.Value而不是c#null。