1

TableAdapter入力しましたDataSetが、何らかの理由で、すべてのselectクエリが、選択したすべての行のタイムスタンプ列に値1/1/2000を入力します。

最初に、データベース側で元の値が損なわれていないことを確認しました。問題が発見される前にプログラムで実行された更新クエリのために、いくつかの行が元の値を失ったものの、ほとんどがそうです。

DataColumn.DataTypeですがDateType、PgSQLデータベースの列タイプはtimestampです。最近、バインドされたコントロールの問題に気づき、Visual Studioデータセットエディターの[データのプレビューDataGridView]オプションを使用して、これがデータバインディングに関連していないことを確認しました。

プロパティとタイプをチェックしTableAdapter、最初から再作成した後でも、私はかなり困惑しています。問題を修正したり、原因を診断したりするにはどうすればよいですか?

4

1 に答える 1

0

フレームワーク(DataTableプロパティなど)は、テーブルフィールドのソースタイプを認識していません。フィールド値をに変換できると期待されるものを示すDataTypeプロパティがあります。

フレームワークはに変換する日付型を想定しているDateTimeため、タイムスタンプ値をクエリで変換する必要があります(例:SELECT timestamp :: date FROM table)。そうでない場合、変換は失敗し、値は2000年1月1/1になります。

于 2010-05-05T17:38:26.327 に答える