Jos*_*ody 3 .net asp.net sql-server-2005
我在扩展MembershipProvider的类中有类似下面的代码(下面的代码已被匿名化并略微简化):
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.
Run Code Online (Sandbox Code Playgroud)
代码在到达cmd.ExecuteReader()时中断; 抛出的异常是"System.Data.SqlClient.SqlException:'''附近的语法不正确."
它似乎表现得好像"?" 在命令文本中未正确解释为参数.我无法弄清楚我做错了什么.我承认我的ASP.NET是有点生疏,但我这样写几十次之前的代码,我写了上面的一切看起来像它的使用模式,我看到的教程,并在MSDN的例子相匹配.谁能告诉我我做错了什么?
目标.NET版本是4.0.ASP.NET正在Visual Web Developer Express 2010中的调试环境中的本地计算机上运行.数据库是SQL Server 2005.
更改
WHERE Username = ?
Run Code Online (Sandbox Code Playgroud)
至
WHERE Username = @Username
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
127 次 |
| 最近记录: |