質問: "SELECT id, @FROM AS \"from\", @TO AS \"to\" FROM Dictionary WHERE @FROM LIKE @SEARCHSTRING"; sqlSelect.SelectCommand.Parameters.Add(new SqlParameter("@FROM", this.from)); sqlSelect.SelectCommand.Parameters.Add(new SqlParameter("@TO", this.to)); sqlSelect.SelectCommand.Parameters.Add(new SqlParameter("@SEARCHSTRING", "'%" + this.SearchField.Text + "%'")); sqlSelect.Fill(dt); connection.Close(); } catch(SqlException e) ... ``` 私は例外がありません。検索後にdtが空であるのはなぜですか? (複合ストリングを使用すると、選択が機能します)何が問題になりましたか? グリーツ
回答: なぜこのような質問を書いたのですか? ``` "SELECT id, @FROM AS \"from\", @TO AS \"to\" FROM Dictionary WHERE @FROM LIKE @SEARCHSTRING"; ``` あなたはテーブルから@ FROMをフェッチしようとしており、それをパラメータとして渡そうとしていますが、それはうまくいくはずですか?また、なぜあなたはスラッシュを入れましたか?彼らはちょうど物事を乱雑にする、それらを削除します。 Selectクエリは、WHERE句とそれ以外の場所でのみ入力パラメータを受け取ります。 これに置き換えてみてください ``` "SELECT id, FROM AS 'from', TO AS 'to' FROM Dictionary WHERE FROM LIKE @SEARCHSTRING"; ``` また、最後の出現以外のすべてを削除します。 ``` sqlSelect.SelectCommand.Parameters.Add ``` また、 "FROM"もSQLキーワードであることに注意してください。そのため、 "[]"で囲んで正しい解釈をしてください。 お役に立てれば...