Non valide tentative d'appel de Métadonnées lorsque le lecteur est fermé?
Je suis en cours d'exécution d'une instruction if else hors d'un datareader pour interroger les données de la table et d'activer/de désactiver certains contrôles sur une page. J'ai mis en place à l'aide d'instruction de fermer automatiquement la connexion et le lecteur quand je ferme le bloc, mais j'ai toujours le lecteur est fermé erreur sur chacune de mes si else. Ce qu'il manque? Le Code ci-dessous:
string comnt = "SELECT StatusId FROM Submission WHERE SubmissionId =" + x;
using (SqlConnection editConn = new SqlConnection(connectionString))
{
editConn.Open();
using (SqlCommand statCmd = new SqlCommand(comnt, editConn))
{
SqlDataReader dr = statCmd.ExecuteReader();
dr.Read();
if (dr.GetInt32(0) > 0)
{
PanelComment.Visible = true;
PanelQuote.Visible = false;
LnbFid.Visible = false;
LnbCrim.Visible = false;
LnbEo.Visible = false;
LnbEpl.Visible = false;
LnbNot.Visible = false;
LnbPriv.Visible = false;
LnbPub.Visible = false;
}
else
{
PanelComment.Visible = false;
}
}
êtes-vous sûr que le lecteur renvoie des lignes? Il a "HasRows" de la propriété à vérifier avant de le lire
qu'est - 'x' représentent-ils? C'est une chaîne de caractères représentant une chaîne de caractères? un certain nombre? Vous devez vous habituer à l'aide des paramètres de la concaténation de chaînes de construire des requêtes SQL est dangereux, spécialement si 'x' est à charge de l'utilisateur.
Le domaine interrogée n'accepte pas les valeurs null, donc ce n'est certainement retourner des lignes @vityanya, et @Entretemps, 'x' est une chaîne de caractères utilisée pour stocker les jqueried présentation de l'id de la page.
Double - stackoverflow.com/questions/6021207/...
qu'est - 'x' représentent-ils? C'est une chaîne de caractères représentant une chaîne de caractères? un certain nombre? Vous devez vous habituer à l'aide des paramètres de la concaténation de chaînes de construire des requêtes SQL est dangereux, spécialement si 'x' est à charge de l'utilisateur.
Le domaine interrogée n'accepte pas les valeurs null, donc ce n'est certainement retourner des lignes @vityanya, et @Entretemps, 'x' est une chaîne de caractères utilisée pour stocker les jqueried présentation de l'id de la page.
Double - stackoverflow.com/questions/6021207/...
OriginalL'auteur Ace Troubleshooter | 2011-05-30
Vous devez vous connecter pour publier un commentaire.
Votre requête n'est pas obtenir de résultats. S'habituer à la suite de construire si vous n'êtes pas sûr si votre requête renvoie toutes les données:
si la présentation de l'id n'est pas numérique, vous pourriez être manquant " dans votre chaîne de requête. S'il est numérique de vérifier d'éventuels problèmes de localisation.
Vide ou pas, cette construction n'empêche pas l'erreur. J'ai couru, même quand je faisais simplement un
SELECT * FROM Authors
genre de requête, tandis que dans le mode de débogage.OriginalL'auteur InBetween
Essayer de cette façon:
Pour plus d'informations, consultez cette page:
La récupération de Données à l'Aide d'un DataReader
HasRows
était suffisante pour effacer mes erreurs n'ont pas besoin de la 2eif
. Et pour moi, même si je m'attendais à un GUID, quand j'ai faitdr.GetGuid(0) > 0
, il a jeté une erreur parce qu'il a été enregistré dans la base de données comme un char(35) colonne au lieu d'une colonne de type uniqueidentifier -- qui ne serait jamais passer leif
test dans cette instance. Afin de permettre à l'acheteur méfiez-vous, même si je l'avoue j'ai eu un cas spécial...OriginalL'auteur Leniel Maccaferri
Il semble que l'instruction select ne renvoie aucune ligne
et lorsque vous appelez le dr.Read() pour la première fois
datareader sera fermé imidiately
pour l'utilisation de lecteur de données nous montre toujours utiliser si ou tout
comme quoi leniel dit
OriginalL'auteur DeveloperX
J'ai été confronté à ce problème en raison de l'inadéquation de lecteur de nom. c'est à dire
plus tard, j'ai remplacé le code
et l'erreur a été résolu.
OriginalL'auteur user1780336
J'ai eu la même erreur une fois dans un certain temps à
disant
metadata not found
. Plus tard, j'ai trouvé que le lecteur n'a pas été fermé, mais le ASP.NET le programme utilise trop de mémoire fermé le lecteur automatiquement. Elle dépend principalement de SQL server scène. Si c'est une erreur, veuillez vérifier votre connexion.OriginalL'auteur user2226548