2017-05-29 1 views
2

meine Anforderung ist, dass ich möchte, dass alle Daten aus der Datenbank in die Rasteransicht binden sollte die Rasteransicht Datenquelle ohne Aktualisierung ....Gridview Datasource-Update

Hier ist mein Code: -

public void BindAll(GridView grd) 
     { 
      List<int> id = new List<int>(); 
      SqlCommand cmd =new SqlCommand("Select SiteId from SiteMaster",con); 

      con.Open(); 
      SqlDataReader dr =cmd.ExecuteReader(); 
      while (dr.Read()) 
      { 
       id.Add(Convert.ToInt16(dr["SiteId"])); 

      } 
      dr.Close(); 
      foreach (int k in id) 
      { 
      List<Errorlog> lst = new List<Errorlog>(); 
      DynamicParameters param = new DynamicParameters(); 
      param.Add("SiteId",k, DbType.Int16); 
      lst = con.Query<Errorlog>("Usp_Temp", param, null, true, 200, CommandType.StoredProcedure).ToList(); 
      if (lst.Count != 0) 
      { 

       grd.DataSource = lst; //here it display only those record which are last updated.I am binding data from multiple table .it only display last table data.I want all the data from all the table should be display. 
       grd.DataBind(); 
      } 


      } 

     } 
+0

Ich möchte nicht den 1. Aufruf nur einmal aufrufen: Liste lst = neue Liste (); Sie erstellen jedes Mal eine neue Liste, die die alten Daten entfernt. Auch beim Aktualisieren der Datenquelle auf null setzen: grd.DataSource = null; grd.DataSource = lst; – jdweng

Antwort

2
List<Errorlog> lst = new List<Errorlog>(); // create list 
// loop and add items to above list as below 
foreach (int k in id) 
{ 
    DynamicParameters param = new DynamicParameters(); 
    param.Add("SiteId",k, DbType.Int16); 
    List<Errorlog> temp= con.Query<Errorlog>("Usp_Temp", param, null, true, 200, CommandType.StoredProcedure).ToList(); 
    //add to main list 
    lst .AddRange(temp); 

} 
//finally show all the data 
if (lst.Count != 0) 
{ 
    grd.DataSource = lst; 
    grd.DataBind(); 
} 
012 geändert‘
+0

danke für die Lösung – Hinal

0

Versuchen:

SqlCommand cmd =new SqlCommand("Select * from SiteMaster",con); 

ich habe die sQL-Abfrage