あるテーブルからデータをプルし(MS Access)、それを別のテーブルに挿入する(さらにデータを追加する)FormViewがあります。日付に問題があります。
最初のテーブルには、との2つの日付フィールドがdate_submitted
ありdate_updated
ます。一部のレコードでdate_updated
は、空白です。これにより、2番目のテーブルに挿入しようとすると、データの不一致エラーが発生します。
これはdate_updated
、最初のテーブルのフィールドをFormViewのHiddenFieldにデータバインディングしていることが原因である可能性があります。次に、HiddenFieldから値を取得し、それを2番目のテーブルに挿入しようとします。
Dim hfDateRequestUpdated As HiddenField = FormView1.FindControl("hfDateRequestUpdated")
myDateRequestUpdated = hfDateRequestUpdated.Value
'... It then attempts to insert myDateRequestUpdated into the database.
そこに値がある場合は機能しますが、Accessの日付/時刻フィールドに何も挿入できないようです。date_updated
(に値がない場合に使用するために)に挿入しない2番目の挿入ステートメントを作成できると思いますがdate_updated
、それが唯一の方法ですか?より簡単で冗長性の少ない方法があるはずです。
編集:
わかった。そこで、SqlDateTime.Null、Nothing、およびDBNull.Valueを挿入してみました。SqlDateTime.Nullの結果、値1/1/1900がデータベースに挿入されます。「Nothing」により、2001年1月1日が挿入されます。また、DBNull.Valueを使用しようとすると、文字列に変換できないことが示されるため、その場で何かをしなかった可能性があります。とにかく、Accessのフィールドに何も挿入しないと空白のままになることを期待していましたが、何かで埋める必要があるようです...
編集:
DBNull.Valueを機能させましたが、完全に空白の値が挿入されます。これが私の最終的な作業コードです。
Dim hfDateRequestUpdated As HiddenField = FormView1.FindControl("hfDateRequestUpdated")
Dim myDateRequestUpdated = Nothing
If hfDateRequestUpdated.Value = Nothing Then
myDateRequestUpdated = DBNull.Value
Else
myDateRequestUpdated = DateTime.Parse(hfDateRequestUpdated.Value)
End If
みんな、ありがとう!