Le type de Système.Les données.SqlClient.SqlDataReader " n'a pas de constructeurs définis
J'ai des problèmes avec SqlDataReader. J'obtiens l'erreur "Le type du Système".Les données.SqlClient.SqlDataReader "n'a pas de constructeurs définie" lorsque j'essaie de l'exécution de la page. Mon intention ici est de retourner une chaîne de valeur 0 si l'utilisateur n'a pas eu accès ou 1 lorsque l'utilisateur a évaluer. Ci-dessous mon code extrait.
public string CheckAssess(string emailAddress, string columnName)
{
string chkAssess;
SqlDataReader readAssess;
readAssess = new SqlDataReader();
string MgrAssessQry = "SELECT '"+columnName+"' FROM tblAllUsers";
MgrAssessQry += " WHERE email ='" + emailAddress + "'";
SqlCommand cmdReadAssess = new SqlCommand(MgrAssessQry, cn);
cn.Open();
readAssess = cmdReadAssess.ExecuteReader();
while(readAssess.Read())
{
//Add the rows
chkAssess = readAssess["IsAssessMgr"].ToString();
}
return chkAssess;
}
- Sans rapport avec conseils:
SqlConnection
,SqlCommand
etSqlDataReader
sont tousIDisposable
donc chacun doit être dans unusing
bloc. Aussi, méfiez-vous de la construction de requêtes à l'aide de la concaténation de chaîne, car il rend votre code vulnérable à des attaques par injection SQL: utilisation des paramètres SQL.
Vous devez vous connecter pour publier un commentaire.
Essayez quelque chose comme:
J'ai changé votre SqlDataReader l'instanciation de la ligne où vous exécutez la requête
De la même manière que dans cet exemple, à partir de MSDN
http://msdn.microsoft.com/es-es/library/system.data.sqlclient.sqldatareader(v=vs. 110).aspx
Supprimer de Nouveau à partir de SqlDataReader Déclaration.
Essayez ceci:
Modifier cette
à
SqlDataReader
La SqlDataReader classe n'a pas de constructeurs, de réécrire votre code suivant:
Chang votre
à
SqlDataReader Classe
readAssess
est déjà défini avec le type approprié. L'exception n'a même pas de se produire à cette ligne