2

您好,我正在尝试,select * data但是对于名为paymentsif is NULL 的列,我需要插入 set value 0

我试着这样做:

string sqlcom = "SELECT (ISNULL(payments,0)) * FROM zajezd WHERE id >= '" + txt_od.Text + "'AND id <='" + txt_do.Text + "' AND year='" + klientClass.Rocnik() + "'";

但我仍然收到异常bad syntax near FROM

有人可以帮我解决这个问题吗?

非常感谢提前

4

5 回答 5

4

放在,前面*。尝试这个

string sqlcom = "SELECT (ISNULL(payments,0)), * FROM zajezd WHERE id >= '" + txt_od.Text + "'AND id <='" + txt_do.Text + "' AND year='" + klientClass.Rocnik() + "'";

但我也建议你不要像这样传递参数。用于Parameterized query避免 sql 注入。

于 2013-09-05T09:28:28.497 回答
3

您需要逗号或清除*.

SELECT (ISNULL(payments,0)), * FROM

或者

SELECT (ISNULL(payments,0)) FROM

只是为了添加你不应该使用的赞扬的总和(感谢 Liath)*。而是指定您真正需要的列。

还要删除外部括号,因为它们并不是真正需要的。

我还要补充一点,您应该为该列使用别名。

所以它会是:

SELECT ISNULL(payments,0) AS payments, Col1, Col2,..., Coln FROM...

或者只是简单的:

SELECT ISNULL(payments,0) AS payments FROM...
于 2013-09-05T09:28:09.410 回答
2

中间加逗号

(ISNULL(付款,0))
*

于 2013-09-05T09:28:08.210 回答
1

尝试这个

string sqlcom = "SELECT ISNULL(payments,0), * FROM zajezd WHERE id >= '" + txt_od.Text + "'AND id <='" + txt_do.Text + "' AND year='" + klientClass.Rocnik() + "'";

你的WHERE条款有点模棱两可。<= txt_do.Text AND >= txt_od.Text

这不会过滤掉任何东西

于 2013-09-05T09:30:30.727 回答
1

要么删除 the 要么*在 and 之间(ISNULL(payments,0))加一个逗号*

于 2013-09-05T09:29:15.223 回答