Lecture des données de la table de firebase database SQL vers une collection générique

Je voulais lire toutes les données d’une table (contenant 3 lignes) et append toutes les données dans une collection générique.

Le code affiché ci-dessous fonctionne, mais seule la dernière ligne est affichée 3 fois dans gridview.Can You help me.Am un débutant

protected void Page_Load(object sender, EventArgs e) { List listid = new List(); Student stud = new Student(); SqlConnection con = new SqlConnection("........"); ssortingng sql = "select * from StudentInfo"; con.Open(); SqlCommand cmd = new SqlCommand(sql, con); SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { stud.Studid = Convert.ToInt32(dr["StudId"]); stud.StudName = dr["StudName"].ToSsortingng(); stud.StudentDept = dr["StudentDept"].ToSsortingng(); listid.Add(stud); } GridView1.DataSource = listid; GridView1.DataBind(); } public class Student { private int studid; public int Studid { get { return studid; } set { studid = value; } } private ssortingng studName; public ssortingng StudName { get { return studName; } set { studName = value; } } private ssortingng studentDept; public ssortingng StudentDept { get { return studentDept; } set { studentDept = value; } } 

La sortie est comme ça:

entrez la description de l'image ici

Vous devez instancier votre object dans la boucle while
Sinon, vous aurez les mêmes données dans la collection
Donc, le code devrait être

 protected void Page_Load(object sender, EventArgs e) { List listid = new List(); SqlConnection con = new SqlConnection("........"); ssortingng sql = "select * from StudentInfo"; con.Open(); SqlCommand cmd = new SqlCommand(sql, con); SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { Student stud = new Student(); stud.Studid = Convert.ToInt32(dr["StudId"]); stud.StudName = dr["StudName"].ToSsortingng(); stud.StudentDept = dr["StudentDept"].ToSsortingng(); listid.Add(stud); } GridView1.DataSource = listid; GridView1.DataBind(); } 

En outre, il n’est pas recommandé d’utiliser un lecteur de données ou une connexion directe
Vous devriez utiliser using statement.

 using(SqlConnection con = new SqlConnection("connection ssortingng")) { con.Open(); using(SqlCommand cmd = new SqlCommand("SELECT * FROM SomeTable", connection)) { using (SqlDataReader reader = cmd.ExecuteReader()) { if (reader != null) { while (reader.Read()) { //do something } } } // reader closed and disposed up here } // command disposed here } //connection closed and disposed here 

Dans la boucle DataReader While, vous instanciez un nouvel étudiant pour chaque ligne de la table de firebase database:

 while (dr.Read()) { var stud = new Student(); stud.Studid = Convert.ToInt32(dr["StudId"]); stud.StudName = dr["StudName"].ToSsortingng(); stud.StudentDept = dr["StudentDept"].ToSsortingng(); listid.Add(stud); }