DataGridView, привязанный к DataSet, не обновляется из другой формы.C#

Место общения программистов C#
Anonymous
DataGridView, привязанный к DataSet, не обновляется из другой формы.

Сообщение Anonymous »


Мне нужно обновить таблицу Microsoft SQL из другой формы, а затем обновить основную форму + поле со списком, которое имеет внешний ключ в другой таблице SQL. По какой-то причине данные не записываются в основную форму, пока вы не откроете ее повторно или не перезапустите программу.
Вот код основной формы:

Код: Выделить всё

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace DeparmentDB5
{
public partial class GradeJournalForm : Form
{
public GradeJournalForm()
{
InitializeComponent();
}

private void gradeJournalBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
this.Validate();
this.gradeJournalBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.departmentDataSet);
}

private void GradeJournalForm_Load(object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу "departmentDataSet.Students". При необходимости она может быть перемещена или удалена.
this.studentsTableAdapter.Fill(this.departmentDataSet.Students);
// TODO: данная строка кода позволяет загрузить данные в таблицу "departmentDataSet.Academics". При необходимости она может быть перемещена или удалена.
this.academicsTableAdapter.Fill(this.departmentDataSet.Academics);
// TODO: данная строка кода позволяет загрузить данные в таблицу "departmentDataSet.Subjects". При необходимости она может быть перемещена или удалена.
this.subjectsTableAdapter.Fill(this.departmentDataSet.Subjects);
// TODO: данная строка кода позволяет загрузить данные в таблицу "departmentDataSet.GradeJournal". При необходимости она может быть перемещена или удалена.
this.gradeJournalTableAdapter.Fill(this.departmentDataSet.GradeJournal);

}

private void button1_Click(object sender, EventArgs e)
{
AcademicsForm academicsForm = new AcademicsForm();
academicsForm.Owner = this;
academicsForm.ShowDialog();
}

private void button2_Click(object sender, EventArgs e)
{
SubjectsForm subjectsForm = new SubjectsForm();
subjectsForm.Owner = this;
subjectsForm.ShowDialog();
}

private void button3_Click(object sender, EventArgs e)
{
StudentsForm studentsForm = new StudentsForm();
studentsForm.Owner = this;
studentsForm.ShowDialog();
}

private void gradeJournalDataGridView_DataError(object sender, DataGridViewDataErrorEventArgs e)
{

}
}
}

Дочерняя форма:

Код: Выделить всё

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace DeparmentDB5
{
public partial class AcademicsForm : Form
{
public AcademicsForm()
{
InitializeComponent();
}

private void academicsBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
this.Validate();
this.academicsBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.departmentDataSet);

}

private void AcademicsForm_Load(object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу "departmentDataSet.Academics".  При необходимости она может быть перемещена или удалена.
this.academicsTableAdapter.Fill(this.departmentDataSet.Academics);

}

private void button1_Click(object sender, EventArgs e)
{
this.academicsBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.departmentDataSet);
GradeJournalForm main = this.Owner as GradeJournalForm;
if (main != null)
{
main.academicsTableAdapter.Fill(this.departmentDataSet.Academics);
main.academicsCombo.SelectedIndex = main.academicsCombo.Items.Count - 1;
}
this.Close();
}

private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
}
}

Tried refreshing the combobox and the form - nothing
Tried setting all elements in the main form to public - nothing


Источник: https://stackoverflow.com/questions/781 ... other-form

Вернуться в «C#»