Da ich gerade so eine Methode selbst geschrieben habe, schenke ich sie dir mal -)
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28:
| private bool ReadData(string sQuery, IDbDataAdapter da, DataSet dataset) { using(SqlConnection sqlConn = new SqlConnection(sConnection)) using(SqlCommand sqlCmd = sqlConn.CreateCommand()) { sqlCmd.CommandText = sQuery; sqlConn.Open();
dataset.Reset(); da.SelectCommand = sqlCmd; da.Fill(dataset);
return dataset.Tables != null && dataset.Tables[0] != null; } }
private SqlDataAdapter daUsers = new SqlDataAdapter(); private DataSet datasetUsers = new DataSet();
private void ReadUsers() { string sQuery = "select * from Users"; if(ReadData(sQuery, daUsers, datasetUsers)) { dataGridViewUsers.DataSource = datasetUsers.Tables[0]; } } |
Alternativ kann die Methode ReadData() auch gleich die Tabelle zurückliefern (oder null) und du kannst direkt die Bindung durchführen (alternativ auch über eine BindingSource).
Bei Tabwechsel mußt du dann nur den aktuellen Datensatz (der ersten DGV) ermitteln und mit dem entsprechend modifizierten Select-Statement dann deine angepaßte ReadUsers() aufrufen (ich habe bei mir Users und UserActions).