これが私の機能です:
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());
}
関数の 4 番目の更新では、残りの部分と同じ機能が使用されていることがわかります。デバッグ用のものがいくつか追加されているだけです。最初の 3 つのテーブルは DataGridViews にバインドされ、正常に動作します。4 番目のテーブルには、そのメンバーがさまざまなテキスト ボックスにバインドされています。
GasReading 列にバインドされたテキスト ボックスの値を変更して [保存] をクリックすると、実際には最初の MessageBox に新しい値が表示されるため、データセットに正しく作成されます。ただし、影響を受ける行は常に 0 を示しており、実際のデータベースの値は更新されていません。
誰でも私の問題を見ることができますか? 4 つの更新方法が同じであるため、コードの別の場所に問題があることは理解していますが、どこから始めればよいかわかりません。
ここに私のバインディングコードがあります:
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");
より複雑なバインド方法があることは理解していますが、バインドは問題ではありません。繰り返しますが、データはバインドされたテキストボックスからデータテーブルに作成されていますが、そこからデータベースには作成されていません。