У меня есть:
- 1 форма
- 3 панели (1 слева для меню / 1 сверху и 1, которые заполняют другую часть моей страницы.
- Несколько управляющих пользователей (столько же, сколько кнопок в меню)
В 1 из управляющих пользователей у меня есть 2 DataGridView. 2 Datagrid в Control User
Когда я нажимаю на одну из строк, открывается другая форма.
введите описание изображения здесь
Я получил данные из своей базы данных localhost. Когда я загружаю программу, все без проблем обновляется.
Когда я нажимаю "Validater cette pa ie" в открывшейся форме, он должен вставить это строки в другой таблице и удалите информацию из таблицы. PLUS refre sh обоих таблиц данных (поэтому строка, которую я удалил из первой таблицы данных, должна появиться во второй. И закройте форму.
Вставка и delete работает отлично, а также закрывает мою форму. Но не refre sh. Если вы заметили, я получил 2 кнопка refre sh, когда я нажимаю на них, она refre sh, но я хочу, чтобы она была автоматизированной c. (В противном случае сбивает с толку пользователя)
public void BtnValidationPaie_Click(object sender, EventArgs e)
{
try
{
string InsertPaie = "INSERT INTO paievalide(Prenom,AmiLocal,Extension,SBN,CheckIn,PaieHT,PaieTTC) VALUES('" + LblPrenom1.Text + "','" + LblAmiLocal1.Text + "', '" + LblExtension1.Text + "', '" + LblSBN1.Text + "', '" + LblCheckIn1.Text + "', '" + LblPaieHT1.Text + "', '" + LblPaieTTC1.Text + "')";
MySqlFunctionEmploye.ExecuteQuery(InsertPaie);
string deleteQuery = "DELETE FROM newpaie WHERE ID =" + LblInfo1.Text;
MySqlFunctionEmploye.ExecuteQuery(deleteQuery);
AlerteControl AlerteControl = new AlerteControl();
AlerteControl.MajDatagrids(); // **Calling the method to update DATAGRIDVIEWS**
//FunctionAlerte FunctionAlerte = new FunctionAlerte();
//FunctionAlerte.RefreshDataGridViewNewPaie(dataGridViewNewAlerte); **This is actually the function i call in my method above. If i call the function right away i got an error saying my datagrid is Null, which can't be null all the cells are filled up.**
//FunctionAlerte.RefreshDataGridViewPaieValide(dataGridViewPaieValide);
this.Close();
Console.WriteLine("pas d'erreur");
}catch(MySqlException exception)
{
MessageBox.Show(exception.ToString());
}
}
Вот мой метод для вызова функции.
public void MajDatagrids()
{
Console.WriteLine("Maj de MajDATAgrids"); **I checked if the method is called by this line and it is called.**
FunctionAlerte.RefreshDataGridViewNewPaie(dataGridViewNewAlerte);
FunctionAlerte.RefreshDataGridViewPaieValide(dataGridViewPaieValide);
}
Я искал целую вечность, и я ничего не могу найти. Также поймите, что я новичок в c# и Visual Studio (Winform)
Редактировать: это код второй формы
public partial class InfosNewAlerte : Form
{
public InfosNewAlerte()
{
InitializeComponent();
}
MySqlConnection connection = new MySqlConnection("Server=localhost; database=cap; user id=root; pwd=");
public DataGridView dataGridViewNewAlerte;
public DataGridView dataGridViewPaieValide;
//
// Au Chargement de la page, on recupere les infos de la DATAGRID-NEW-ALERTE et on les affiches sur le nouveau formulaire INFOS NEWS ALERTE FORMULAIRE
//
public void InfosNewAlerte_Load(object sender, EventArgs e)
{
LblInfo1.Text = AlerteControl.id;
LblPrenom1.Text = AlerteControl.prenom;
LblAmiLocal1.Text = AlerteControl.amilocal;
LblSBN1.Text = AlerteControl.sbn;
LblExtension1.Text = AlerteControl.extension;
LblCheckIn1.Text = AlerteControl.checkin;
LblPaieHT1.Text = AlerteControl.paieht;
LblPaieTTC1.Text = AlerteControl.paiettc;
}
//
// En cliquant sur le bouton valider de cette page alors vous envoyez cette paie a la partie finance et la SUPPRIME de New Alerte
//
public void BtnValidationPaie_Click(object sender, EventArgs e)
{
try
{
string InsertPaie = "INSERT INTO paievalide(Prenom,AmiLocal,Extension,SBN,CheckIn,PaieHT,PaieTTC) VALUES('" + LblPrenom1.Text + "','" + LblAmiLocal1.Text + "', '" + LblExtension1.Text + "', '" + LblSBN1.Text + "', '" + LblCheckIn1.Text + "', '" + LblPaieHT1.Text + "', '" + LblPaieTTC1.Text + "')";
MySqlFunctionEmploye.ExecuteQuery(InsertPaie);
string deleteQuery = "DELETE FROM newpaie WHERE ID =" + LblInfo1.Text;
MySqlFunctionEmploye.ExecuteQuery(deleteQuery);
AlerteControl AlerteControl = new AlerteControl();
// AlerteControl.MajDatagrids(); // Appel de la methode de MISE A JOUR DES DATAGRIDVIEWS
this.Close();
FunctionAlerte FunctionAlerte = new FunctionAlerte();
FunctionAlerte.RefreshDataGridViewNewPaie(dataGridViewNewAlerte);
FunctionAlerte.RefreshDataGridViewPaieValide(dataGridViewPaieValide);
Console.WriteLine("pas d'erreur");
}
catch(MySqlException exception)
{
MessageBox.Show(exception.ToString());
}
}
}