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 に答える