6

ASP.NET/VBを使用していて、Accessの日付/時刻フィールドに日付と時刻を挿入しようとしていますが、エラーが発生します(基準式のデータ型の不一致)。これが私のコードの簡略化されたバージョンです:

Dim myDate As Date = Now()
Dim myIns1 As New OleDbCommand("INSERT INTO tableCourse (date_submitted) VALUES (?)", myConn)
myIns1.Parameters.AddWithValue("@myDate", myDate)
myIns1.ExecuteNonQuery()

エラーが発生する理由がわかりません。また、これが現在の日付を挿入するための正しい方法であるかどうかもよくわかりません。他の同様の質問を見ると、これを行うにはいくつかの異なる方法があるように見えますが、私の技術的知識は限られているため、それを理解するのに苦労しています(言い換えれば、私が知っている専門用語を使用する答えを解読する)何も)。

前もって感謝します!

4

2 に答える 2

2

パラメータを完全にスキップして、NOW関数をクエリに直接書き込むことができます。

Dim myIns1 As New OleDbCommand("INSERT INTO tableCourse (date_submitted) VALUES (NOW())", myConn)
myIns1.ExecuteNonQuery()

この答え(上記のもの)はおそらくより良い解決策ですが、元のコードが機能しなかった理由は、パラメーターに名前が付けられていなかったためです。あなたはこれを試すことができます:

Dim myDate As Date = Date.Now
Dim myIns1 As New OleDbCommand("INSERT INTO tableCourse (date_submitted) VALUES (@myDate)", myConn)
myIns1.Parameters.AddWithValue("@myDate", myDate)
myIns1.ExecuteNonQuery()

于 2012-04-20T03:40:27.683 に答える
-1

変更してみてください

Dim myDate As Date = Now()

Dim myDate As DateTime = Now()

MS Accessは、DATEデータ型を提供せず、DATETIMEのみを提供します。

于 2012-04-20T03:24:47.700 に答える