- PR -

C#からAccessデータベースへのDateTime型の書き込み

1
投稿者投稿内容
Bell
会議室デビュー日: 2004/03/09
投稿数: 13
投稿日時: 2004-04-05 10:41
C#でAccessデータベースを操作しています

C#から日時をDateTime型でDBに書き込もうとしたのですが
日付(年/月/日)のみで時間がDBに書き込まれませんでした。
C#上にデータを読み込むと時間の部分は0になっています(DBに書き込まれていないため)。
また、DBに直接時間を書き込んで読み込んだところ、
時間の読み込みはできたのですが、時間を修正して更新を行うとDBへの更新時に
「同時実行違反:UpdateCommandによって0件処理されました」
という例外が出てしまいます…

Accessでのその列のデータ型は日付/時刻型(書式は日付(標準))を使っているのですが
DataTime型を使って日時のやり取りを行うことはできないのでしょうか。


現在のコードは
修正したい行をDataRow型のフィールドRowに読み込み、
String DayStr = "日時("yyyy/MM/dd hh:mm;ss"の型式)"
row["DateandTime"]=DataTime.ParseExact(DayStr, "yyyy/MM/dd hh:mm:ss", null);

データセット.Tables["テーブル名"].Rows.Add(row);

oleDbDataAdapter.Update(データセット, "テーブル名")

という操作をしています。

[ メッセージ編集済み 編集者: Bell 編集日時 2004-04-05 11:52 ]
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2004-04-05 11:05
「同時実行違反」は今回の話と関係がないと思いますよ、多分ですけど。
(例えばmdbファイルをAccessで開いて変更中だったとか?)

oleDbDataAdapterのInsertCommandはどんな感じになってますか?
InsertCommandのパラメータは。
Bell
会議室デビュー日: 2004/03/09
投稿数: 13
投稿日時: 2004-04-05 13:03
そのものずばりでした。
oleDbAdapterのInsertCommandのパラメータを見て見ると
DBに書き込む型式がDBDateになっていたため
DBDateをDBTimeStampに変更したところきれいに書き込むことができました。

一郎さん、ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)