类SQL语句:不能将字符值转换为货币.char值语法不正确

本文关键字:转换 货币 char 不正确 语法 字符 语句 SQL 不能 | 更新日期: 2023-09-27 17:51:20

我有一个文本框,允许用户在我们的网站上搜索内容,这里是c#代码来处理是传入的:

string search = Server.HTMLDecode(userEnteredSearchText);
SqlCommand comm = new SqlCommand("SELECT data FROM database WHERE (Title LIKE @search) " 
comm.Parameters.Add(new SqlParameter("search", String.Format("%{0}%", search)));

我从来没有见过这个错误:

不能将字符值转换为货币…

,但如果用户输入空格,它将关闭。我调试了它,似乎是什么可能导致它是,如果搜索= ",那么参数将是%%?似乎有时如果用户输入足够的空间(即搜索是"),那么页面不会崩溃吗?但我不确定到底是什么问题。

更新:不确定究竟是什么问题,这是,但我通过使用RequiredFieldValidator的文本框修复它。

类SQL语句:不能将字符值转换为货币.char值语法不正确

@Kevin,为什么不检查用户是否输入" ?然后,如果用户输入的是",在将其发送到数据库之前,给他们一个错误来修复他们的输入。

需要将money的值强制转换为string

SqlCommand comm = new SqlCommand("SELECT CAST(Result AS VARCHAR(MAX)) WHERE (Keyword LIKE @search) "