У меня есть 2 формы, первая форма4, которая является dataGridView, содержит информационные базы из базы данных, когда я нажимаю кнопку "Создать", форма 5 показывает формуляр, который я должен заполнить, затем кликнуть на кнопку "добавить", наконец, результат Я должен появиться в datagridView формы Form4. это возможно? это мой код:
private void button2_Click(object sender, EventArgs e)
{
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();
SqlCommand sql = new SqlCommand("insert into journal values('" + textBox1.Text + "','" + textBox2.Text + "','" + comboBox2.SelectedItem.ToString() + "','" + comboBox1.SelectedItem.ToString() + "','" + checkBox1.Checked.ToString()+"','"+checkBox2.Checked.ToString()+"');", connection);
int o = sql.ExecuteNonQuery();
MessageBox.Show(o + " Le Fichier journal a ?t? ajout? avec succ?s");
connection.Close();
textBox1.Text = "";
textBox2.Text = "";
if(textBox1.Text ==" ")
{
MessageBox.Show("La saisie du code Journal est obligatoire!!");
}
affich();
}
private void affich()
{
try
{
pat = connectionString;
req = "SELECT * FROM journal";
con = new SqlConnection(pat);
con.Open();
dr = new SqlDataAdapter(req, con);
dr.Fill(ds, "journal");
Form4 Form4 = new Form4();//ceci va creer une nouvelle instance je ne veux pas avoir une nouvelleFen?te
Form4.journalDataGridView.DataSource = ds.Tables["journal"];
Form4.Show();
}
catch (Exception e) { MessageBox.Show("Base de donn?es non trouv?e", e.Message); }
}
и 2 формы:
Спасибо за помощь
Требование: кнопка в Form5
должна добавлять результаты в DataGridView
присутствующие в Form4
без создания нового экземпляра Form4
В Form4
измените свойство Modifiers
journalDataGridView
как Public
.
Необходимы следующие изменения:
public partial class Form5 : Form
{
Form4 form4;
public Form5(Form4 f4)
{
InitializeComponent();
this.form4 = f4;
}
private void button2_Click(object sender, EventArgs e)
{
...
...
affich();
}
private void affich()
{
try
{
pat = connectionString;
req = "SELECT * FROM journal";
con = new SqlConnection(pat);
con.Open();
dr = new SqlDataAdapter(req, con);
dr.Fill(ds, "journal");
form4.journalDataGridView.DataSource = ds.Tables["journal"];
}
catch (Exception e) {
MessageBox.Show("Base de donn?es non trouv?e", e.Message);
}
}
}
Как создать Form5
экземпляр из Form4
:
Внутри Form4.cs:
public partial class Form4 : Form
{
public Form4()
{
InitializeComponent();
}
private void newButton_Click(object sender, EventArgs e)
{
Form5 form5 = new Form5(this);
form5.Show();
}
...
}
Или из любой другой родительской формы:
//must have valid Form4 objForm4
Form5 form5 = new Form5(objForm4);
form4
в form5
.
попробуйте этот метод кода:
private void affich()
{
try
{
pat = connectionString;
req = "SELECT * FROM journal";
con = new SqlConnection(pat);
con.Open();
dr = new SqlDataAdapter(req, con);
dr.Fill(ds, "journal");
Form4 obj= new Form4();//ceci va creer une nouvelle instance je ne veux pas avoir une nouvelleFenête
obj.journalDataGridView.DataSource = ds.Tables["journal"];
Form4.Show();
}
catch (Exception e) { MessageBox.Show("Base de données non trouvée", e.Message); }
}
Form4.Show()
должен быть obj.Show()