-1

我有一个查询,它根据提供的唯一标识符 Id 选择一个表,所以当我将 Id 提供给一个值时,它会返回结果,但是如果我像下面这样传递它,我会收到一条错误消息。请建议在这种情况下如何使用 Convert 或 Cast 来解决此问题。谢谢

SELECT * FROM TBL WHERE ID=''
4

2 回答 2

2

假设@id是一个字符串参数,并且该ID列不可为空,您可以做一些像这样愚蠢的事情:

SELECT * FROM TBL WHERE ID = COALESCE(NULLIF(@id, ''), ID);

NULL但实际上,如果没有值,而不是空字符串,您应该传递。这首先不应该是字符串参数。

于 2012-06-27T14:23:58.040 回答
0

根据对此答案的评论,解决方案应该是这样的(在伪代码中):

if textbox1.Text.ToString().Equals('') {
    SELECT * FROM TBL
}
else {
    SELECT * FROM TBL WHERE ID='"+textbox1.text+"' 
}

您可以IF在 C# 应用程序中执行此操作。

于 2012-06-27T13:53:03.977 回答