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