Ευχαριστώ για την απάντησή σου Γιώργο.
Λοιπόν έχουμε και λέμε.
1.) Έχω πχ. μία κλάση Contact, όπου κάνω set τα commands.
public Contact()
{
selectCommand.CommandText = @"
SELECT *
FROM Contact";
selectCommand.Connection = Database.Con;
insertCommand.CommandText = @"
INSERT INTO Contact(id, firstName, lastName, city)
VALUES (@id, @firstName, @lastName, @city)";
insertCommand.Connection = Database.Con;
insertCommand.Parameters.Add("@id", OleDbType.Integer, 0, "id");
insertCommand.Parameters.Add("@firstName", OleDbType.VarWChar, 0, "firstName");
insertCommand.Parameters.Add("@lastName", OleDbType.VarWChar, 0, "lastName");
insertCommand.Parameters.Add("@city", OleDbType.VarWChar, 0, "city");
da.SelectCommand = selectCommand;
da.InsertCommand = insertCommand;
da.Fill(ds, "Contact");
}
...
/// <summary>
/// Επιστρέφει ένα DataTable Contact.
/// </summary>
/// <returns></returns>
public DataTable GetDataSource() {
return ds.Tables["Contact"];
}
// update των data
public void UpdateDataSet() {
selectCommand.CommandText = @"
SELECT *
FROM Contact";
da.SelectCommand = selectCommand;
da.Fill(ds, "Contact");
}
// μέθοδος εισαγωγής data στη βάση
public void Insert(Int16 id, string fName, string lName, string city) {
insertCommand.Parameters["@id"].Value = id;
insertCommand.Parameters["@firstName"].Value = fName;
insertCommand.Parameters["@lastName"].Value = lName;
insertCommand.Parameters["@city"].Value = city;
insertCommand.ExecuteNonQuery();
}
2.) Έχω και ένα UserControl, το ucContact που περιέχει πχ. ένα gridView (devExpress):
public ucContact()
{
InitializeComponent();
gridView.DataSource = contact.GetDataSource();
}
3.) Την κύρια φόρμα, την fMain όπου κάνω τα εξής:
// event που εμφανίζει τη φόρμα εισαγωγής
private void btnInsertContact_Click(object sender, System.EventArgs e) {
using ( fInsert f = new fInsert() ) {
f.ShowDialog();
}
}
// event fMain_Activated()
private void fMain_Activated(object sender, System.EventArgs e) {
contact.UpdateDataSet();
}
4.) Και τέλος την fInsert, όπου κάνω insert τα data:
private void btnSave_Click(object sender, System.EventArgs e) {
contact.Insert(Convert.ToInt16(textBox1.Text), textBox2.Text, textBox3.Text, textBox4.Text);
this.Close();
}
Η ερώτηση μου είναι: Πως θα κάνω update το gridView του UserControl με το που πατήσω αποθήκευση/εισαγωγή στη φόρμα fInsert και πάω πίσω στην fMain, χωρίς να χρησιμοποιήσω το event fMain_Activated()???