我有一个允许用户在我们网站上搜索内容的文本框,这里是要传递的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值转换为金钱......
但如果用户输入空格,它就会消失。我通过它调试,似乎可能导致它的是,如果search =“”,那么param将是%%?似乎有时如果用户输入足够的空格(即搜索是“”),那么页面不会崩溃?但我不确定问题是什么。
更新: 不确定这个问题究竟是什么,但我通过使用文本框的RequiredFieldValidator来修复它。
答案 0 :(得分:1)
@Kevin,为什么不检查用户是否输入“”?然后,如果用户输入“”,则在将其输入发送到数据库之前给他们一个错误来修复他们的输入。
答案 1 :(得分:0)
您需要将money
值转换为string
。试试这个;
SqlCommand comm = new SqlCommand("SELECT CAST(Result AS VARCHAR(MAX)) WHERE (Keyword LIKE @search) "