Jako, ze akurat cwicze sobie mysqla w C# to podam przykladowy kod z moim problemem dotyczacy mysqla, ale prosze sie tym nie sugerowac, na razie nie chodzi o mysqla;)
namespace winMysql2 {
public partial class Form1 : Form {
private bazaDanych sql = new bazaDanych();
public Form1() {
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e) {
toolStripStatusLabel1.Text = "Tworzę połączenie...";
sql.pobierz(ref dataGridView1, ref toolStripStatusLabel1);
}
private void Form1_Load(object sender, EventArgs e) {
}
}
}
class bazaDanych : Form {
private MySqlConnection polaczenie;
private ToolStripStatusLabel oStatus;
private DataGridView grid;
public bazaDanych() {
this.polacz();
}
public void polacz() {
// (...)
}
public void pobierz(ref DataGridView _grid, ref ToolStripStatusLabel _status) {
grid = _grid;
oStatus = _status;
try {
oStatus.Text = "Nawiązano połączenie z serwerem MySQL";
}
catch(System.Exception ex) {
MessageBox.Show(this, "Blad podczas proby nawiazania polaczenia z baza MySQL", "caption", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
string _zapytanie = "SELECT * FROM klienci";
MySqlDataAdapter zapytanie = new MySqlDataAdapter(_zapytanie, this.polaczenie);
MySqlCommandBuilder pytanie = new MySqlCommandBuilder(zapytanie);
try {
DataTable dane = new DataTable();
zapytanie.Fill(dane);
grid.DataSource = dane;
grid.Columns[0].Visible = false;
oStatus.Text = "";
}
catch(System.Exception ex) {
MessageBox.Show("Blad podczas pobierania danych z bazy: " + ex.Message);
}
}
}
Pytanie - czy jest rozsadniejszy lub wygodniejszy sposob na przekazywanie konkretnych obiektow od referencji do poszczegolnych "obiektow formatki" lub jak zrobic w moim przypadku referencje do calej "formatki" (klasy Form1), ktora zawiera wszystkie obiekty na formatce?
Dodam, ze bazaDanych(ref Form Form1) oczywiscie nie dziala, a niezbyt usmiecha mi sie podawanie kilkunastu argumentow dla metody;/