我有一个查询,它根据提供的唯一标识符 Id 选择一个表,所以当我将 Id 提供给一个值时,它会返回结果,但是如果我像下面这样传递它,我会收到一条错误消息。请建议在这种情况下如何使用 Convert 或 Cast 来解决此问题。谢谢
SELECT * FROM TBL WHERE ID=''
我有一个查询,它根据提供的唯一标识符 Id 选择一个表,所以当我将 Id 提供给一个值时,它会返回结果,但是如果我像下面这样传递它,我会收到一条错误消息。请建议在这种情况下如何使用 Convert 或 Cast 来解决此问题。谢谢
SELECT * FROM TBL WHERE ID=''
假设@id
是一个字符串参数,并且该ID
列不可为空,您可以做一些像这样愚蠢的事情:
SELECT * FROM TBL WHERE ID = COALESCE(NULLIF(@id, ''), ID);
NULL
但实际上,如果没有值,而不是空字符串,您应该传递。这首先不应该是字符串参数。
根据对此答案的评论,解决方案应该是这样的(在伪代码中):
if textbox1.Text.ToString().Equals('') {
SELECT * FROM TBL
}
else {
SELECT * FROM TBL WHERE ID='"+textbox1.text+"'
}
您可以IF
在 C# 应用程序中执行此操作。