0

妻のオフィスの CRM でデータが更新されないという問題があります。

シナリオ:

  1. ユーザーがアプリをロードします。
  2. DB からのデータがマスター ビューに入力されます。
  3. ユーザーが編集画面を開きます。
  4. 正しい詳細項目のデータが入力されます。
  5. ユーザーが (任意のフィールドで) 値を変更します。
  6. データが変更されると、保存ボタンがアクティブになります。
  7. ユーザーは保存をクリックします。
  8. 編集画面でデータが更新され(更新が行われたことを証明するため)、元のデータが編集画面に復元されます。
  9. 保存ボタンが無効になっています。
  10. マスター データ グリッドを見ると、編集画面の後ろで、データが更新されているように見えます。
  11. 編集画面を閉じます。新しいデータは引き続きマスター ビューに表示されます。
  12. 更新をクリックすると、マスター データが元の内容に戻ります。

すべての変更が失われます。

開発ネットワークでまったく同じシナリオを実行すると、データベースが更新されます。

では、2 つの環境の違いは何でしょうか。オフィスにはドメインがあります。SQL認証を使用しているので問題ありません。Office DB サーバーを模倣するテスト DB サーバー用に、MS SQL 2005 EE VM を使用して Win2003 EE を実行しています。運用 DB のバックアップを使用して、開発 DB にデータを取り込みます。SQL ユーザー権限を再確認しました。イベント ビューアーまたは DB サーバーの SQL ログにエラーはありません。すべてのワークステーションは Win7 Ent です。私は自宅で x64 を実行していますが、オフィスのマシンは x86 です。すべてが私の開発環境で機能するため、自分のマシンでコードを見ていくだけでは何の洞察も得られません。

このアプリは 2008 年 12 月から存在しています。少なくとも毎月の更新を行っています。
ClickOnce 配置。

詳細情報を収集するには、SQL プロファイラーを実行する必要があります。それを超えて、私は無知です。本当に何が起こっているのですか?本番環境ではなく開発環境で機能するのはなぜですか? これを追跡する方法に関する提案はありますか?

どうも、

イヴァン

4

1 に答える 1

0

アプリケーションの起動後、保存をクリックする直前に、SQL Server Management Studio でテーブルの名前を変更します。アプリケーションがテーブルが存在しないというエラーをスローするかどうかを確認します。エラーが発生しない場合、C# はデータベースを更新しようとしていません。テーブルの名前を元に戻すというエラーが発生した場合は、テーブルにトリガーを追加してログ テーブルに書き込み、アプリケーションを再起動して、保存を試みます。ログテーブルをチェックインして、何か挿入しましたか? そこから行きます。

于 2009-10-02T18:39:43.480 に答える