1

我有一个文本框,允许用户在我们的网站上搜索内容,这是传入的要处理的 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)));

我以前从未见过这个错误:

无法将 char 值转换为货币...

但如果用户输入空格,它就会关闭。我通过它进行了调试,似乎是什么原因导致它是如果搜索 =“”,那么参数将是 %%?似乎有时如果用户输入足够的空格(即搜索是“”),那么页面不会崩溃?但我不确定问题是什么。

更新:不确定到底是什么问题,但我通过对文本框使用 RequiredFieldValidator 来修复它。

4

2 回答 2

1

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

于 2013-01-10T22:17:30.173 回答
0

您需要将money值转换为string. 试试这样;

SqlCommand comm = new SqlCommand("SELECT CAST(Result AS VARCHAR(MAX)) WHERE (Keyword LIKE @search) "
于 2013-01-10T22:05:44.173 回答