ObservableCollection があります
プライベート静的 CertOrigin_Entities db = 新しい CertOrigin_Entities(); プライベート静的 ObservableCollection ocSHIPPING_DTL;
レイトバインディングを行うWPF Datagridがあります
private void btn_SEARCH_Click(object sender, RoutedEventArgs e)
{
string sCI = this.txt_SEARCH.Text;
var sd = (db.TBL_SHIPPING.Where(x => x.CommercialInvoiceNumber == sCI)).ToList();
if (sd.Count() > 0)
{
iID = (int)sd[0].SHIPPING_ID;
var query = (db.v_wpf_cert_origin.Where(x => x.SHIPPING_ID == iID));
ocSHIPPING_DTL = new ObservableCollection<v_wpf_cert_origin>(query.ToList());
dgCOO.ItemsSource = ocSHIPPING_DTL;
var cust = (from x in db.TBL_CUSTOMER
join y in db.TBL_REQUISITION on x.CUSTOMER_ID equals y.CUSTOMER_ID
join z in db.TBL_SHIPPING on y.REQ_ID equals z.REQ_ID
where z.SHIPPING_ID == iID
select new {CUST = x.CustomerName}).ToList();
this.lbl_CUSTOMER.Content = cust[0].CUST.ToString();
}
}
ボタンの後ろでウィンドウを閉じてSQLサーバーデータベースを更新しています
private static bool _SaveChanges()
{
DbTransaction _dbTransaction = null;
db.Connection.Open();
using (_dbTransaction = db.Connection.BeginTransaction())
{
try
{
db.SaveChanges();
db.AcceptAllChanges();
_dbTransaction.Commit();
db.Connection.Close();
}
catch (TransactionAbortedException ex)
{
db.Connection.Close();
throw ex;
}
return true;
}
}
これが私に起こっていることです...私のデータグリッドには、テキストボックスがあります
<DataGridTemplateColumn Header="Hs Tarriff Class #:" Width="125" IsReadOnly="False">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding Path=HsTarriffClassNumber,
UpdateSourceTrigger=PropertyChanged,
NotifyOnTargetUpdated=True}"
Name="txt_HsTarriffClassNumber"
/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
テキスト ボックスの値が 5864.193.45 で、それを 5864.193.46 に変更してから 5864.193.45 に戻すと、ObservableCollection はレコードが変更されたときにレコードを保存しますが、レコードが変更されなかったため、レコードを保存したくありません。変化する。
変更の主な問題はこれです。テーブルに 3 つのトリガーがあります
1 - 更新後、削除されたものを取得して別のデータベースに挿入する監査トリガー
2 - 更新後監査トリガー。ユーザーがデータを変更したため、書類を再印刷して税関に送付する必要があることを示す電子メールを多数の人々に送信します。
3 - 別のテーブルを更新し、ユーザーが変更した値と等しい last_used_tarrif フィールドを設定する On Update トリガー。
ユーザーが実際にデータを変更していない場合、上記のいずれも実行されません。レコードが実際に変更されたかどうかを確認する方法はありますか?
監視可能なコレクション内のレコードをテーブル内のレコードと比較して、実際に異なるレコードのみを更新できますか?
何かアドバイス?