私はのMembershipProviderを拡張するクラスで、次のようなコード(以下のコードはやや匿名化および簡素化されている)を持っている:パラメータ化されたクエリがASP.NETで動作しないのはなぜですか?
SqlConnection conn = new SqlConnection("Integrated Security=;Persist Security Info=False;User ID=WEBUSER;Password=WEBPASSWORD;Initial Catalog=DATABASENAME;Data Source=SERVERNAME");
SqlCommand cmd = new SqlCommand("SELECT Password FROM Membership " +
" WHERE Username = ?", conn);
cmd.Parameters.Add("@Username", System.Data.SqlDbType.NVarChar, 25).Value = "TestUser";
SqlDataReader reader = null;
try
{
conn.Open();
reader = cmd.ExecuteReader(); // Execution breaks here.
それはcmd.ExecuteReaderに取得するコード区切りを();スローされる例外は、 "System.Data.SqlClient.SqlException: '?'の近くに不正な構文があります。"
「?」のように振る舞っているようです。コマンドテキスト中の文字列が正しくパラメータとして解釈されていません。私は何が間違っているのか分かりません。私はASP.NETが少し錆びていることは認めていますが、前に何十回もこのようなコードを書いています。上に書いたすべての内容は、チュートリアルやMSDNの例に見られる使用パターンに似ています。誰かが私が間違っていることを教えてもらえますか?
対象の.NETバージョンは4.0です。 ASP.NETは、ExpressのVisual Web Developerのデバッグ環境内で私のローカルマシン上で実行されている2010データベースは、SQL Server 2005の
誰かがInterbaseを使用するのに時間がかかりすぎました;) –
@Neil No!待って...はい。 –