J'ai le code qui ressemble à ce qui suit dans une classe qui étend MembershipProvider (code ci-dessous a été légèrement anonymisées et simplifié):Pourquoi mes requêtes paramétrées ne fonctionnent-elles pas dans 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.
Les pauses de code quand il est à cmd.ExecuteReader(); L'exception étant levée est "System.Data.SqlClient.SqlException: syntaxe incorrecte près de"? "."
Il semble se comporter comme si le "?" dans le texte de commande n'est pas correctement interprété comme un paramètre. Je ne peux pas comprendre ce que je fais mal. J'avoue que mon ASP.NET est un peu rouillé, mais j'ai écrit du code comme ça des dizaines de fois auparavant, et tout ce que j'ai écrit ci-dessus ressemble aux modèles d'utilisation que je vois dans les tutoriels et dans les exemples MSDN. Quelqu'un peut-il me dire ce que je fais mal?
La version .NET cible est 4.0. ASP.NET est exécuté sur ma machine locale dans l'environnement de débogage dans Visual Web Developer express 2010. La base de données est SQL Server 2005.
Quelqu'un a passé trop de temps à utiliser Interbase;) –
@Neil Non! Attends ... oui. –