[c#] Tentative non valide de lecture en l'absence de données


Answers

Vous devez appeler dr.Read() avant d'essayer de lire des données. Cette méthode retournera false s'il n'y a rien à lire.

Question
    private void button1_Click(object sender, EventArgs e)
    {
        string name;
        name = textBox5.Text;
        SqlConnection con10 = new SqlConnection("con strn");
        SqlCommand cmd10 = new SqlCommand("select * from sumant where username=@name");
        cmd10.Parameters.AddWithValue("@name",name);
        cmd10.Connection = con10;
        cmd10.Connection.Open();//line 7
        SqlDataReader dr = cmd10.ExecuteReader();
    }

    if ( textBox2.Text == dr[2].ToString())
    {
        //do something;
    }

Quand je débogue jusqu'à la ligne 7, c'est ok mais après cela dr lance une exception: Invalid attempt to read when no data is present. Ce n'est pas possible car j'ai des données dans le tableau avec nom d'utilisateur = sumant. S'il vous plaît dites-moi si la déclaration 'if' est correcte ou non .........

Et comment puis-je supprimer l'erreur ??




J'ai juste eu cette erreur, dr.NextResult() au lieu de dr.Read() .




J'avais 2 valeurs qui pourraient contenir des valeurs nulles.

while(dr.Read())
 {
    Id = dr["Id"] as int? ?? default(int?);
    Alt =  dr["Alt"].ToString() as string ?? default(string);
    Name = dr["Name"].ToString()
 }

résolu le problème




Links



Tags

c# c#   ado.net