Вот моя функция:
private void btnSave_Click(object sender, EventArgs e)
{
wO_FlangeMillBundlesTableAdapter.Update(invClerkDataDataSet.WO_FlangeMillBundles);
wO_HeadMillBundlesTableAdapter.Update(invClerkDataDataSet.WO_HeadMillBundles);
wO_WebMillBundlesTableAdapter.Update(invClerkDataDataSet.WO_WebMillBundles);
int rowsaffected = wO_MillTableAdapter.Update(invClerkDataDataSet.WO_Mill);
MessageBox.Show(invClerkDataDataSet.WO_Mill.Rows[0]["GasReading"].ToString());
MessageBox.Show(rowsaffected.ToString());
}
Вы можете видеть, что четвертое обновление в функции использует ту же функциональность, что и остальные, я просто добавил некоторые отладочные материалы. Первые три таблицы привязаны к DataGridViews и работают нормально. Четвертая таблица содержит элементы, связанные с различными текстовыми полями.
Когда я изменяю значение в текстовом поле, привязанном к столбцу GasReading, и нажимаю кнопку Сохранить, первый MessageBox действительно показывает новое значение, поэтому он корректно входит в набор данных. Тем не менее, в строке всегда отображается 0, а значение в фактической базе данных не обновляется.
Кто-нибудь может увидеть мою проблему? Я понимаю, что проблема должна быть в другом месте моего кода, поскольку четыре метода обновления одинаковы, но я просто не знаю, с чего начать.
Вот мой обязательный код:
txtHours.DataBindings.Add("Text", invClerkDataDataSet.WO_Mill, "HoursRun");
txtGasReading.DataBindings.Add("Text", invClerkDataDataSet.WO_Mill, "GasReading");
txtDelayMins.DataBindings.Add("Text", invClerkDataDataSet.WO_Mill, "DelayMins");
txtGapMins.DataBindings.Add("Text", invClerkDataDataSet.WO_Mill, "GapMins");
Я понимаю, что есть более сложные способы связывания, но проблема не в связывании. Опять же, данные поступают из связанных текстовых полей в таблицу данных, но оттуда они не попадают в базу данных.