【发布时间】:2011-02-10 22:05:42
【问题描述】:
我在扩展 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.
代码在到达 cmd.ExecuteReader(); 时中断;抛出的异常是“System.Data.SqlClient.SqlException:'?'附近的语法不正确。”
它似乎表现得好像“?”在命令文本中没有被正确解释为参数。我无法弄清楚我做错了什么。我承认我的 ASP.NET 有点生疏,但我之前已经写过几十次这样的代码,而且我上面写的所有内容看起来都符合我在教程和 MSDN 示例中看到的使用模式。谁能告诉我我做错了什么?
目标 .NET 版本是 4.0。 ASP.NET 在我的本地机器上运行,在 Visual Web Developer Express 2010 的调试环境中。数据库是 SQL Server 2005。
【问题讨论】:
-
有人花了太多时间使用 Interbase ;)
标签: .net asp.net sql-server-2005