我正在使用OleDbCommand插入使用參數的日期/時間字段,並獲取一個異常,指出「條件表達式中的數據類型不匹配」。將日期時間插入到數據庫中
我已經確定的參數引起我的問題,並執行以下代碼會導致我的錯誤:
insertCmd.CommandText = "INSERT INTO myTable ([ParameterName]) VALUES (?)"
insertCmd.Parameters.AddWithValue("@ParameterName", Now)
insertCmd.Connection = _connection
return insertCmd.ExecuteNonQuery()
檢查出是造成這一問題的參數,我得到以下的參數{} @parameterName
ChangeID: 1
DbType: DateTime {6}
Direction: Input {1}
IsNullable: False
Offset: 0
OleDbType: DBTimeStamp {135}
ParameterName: "@ParameterName"
Precision: 0
PrecisionInternal: 0
Scale: 0
ScaleInternal: 0
Size: 0
SourceColumn: ""
SourceColumnNullMapping: False
SourceVersion: Current {512}
Value: #10/9/2014 11:26:15 AM# {Date}
它看起來被認爲是DbType DateTime,插入到參數中的對象是一個Date對象,但它仍然告訴我,數據類型有問題。
我見過這個問題的大部分地方都試圖將一個字符串寫入日期/時間字段,我絕對沒有這樣做。
你應該是您使用OLEDB與SQL服務器可能被格式化,爲了更好的兼容性,如YYYY-MM-DD – 2014-10-09 15:50:57
?什麼是實際的數據庫列數據類型? – Plutonix 2014-10-09 15:56:50
我最好的猜測是你的數據庫表列沒有被定義爲日期時間。 – 2014-10-09 15:56:54