Visual BasicのWindowsフォームで、日付と時刻を選択するためのDateTime Pickerがあります。DateTime Pickerから値を挿入するとエラーが発生する
この値は、パラメータ化されたクエリを使用してAccessデータベースに挿入しています。しかし、私はフォームを実行しているので、私はエラーData type mismatch in criteria expression
を得続けます。
[挿入]コマンドからパラメータを削除すると、このフィールドは正常に入力されます。しかし、私がそれを戻すと、うまくいきません。
Private Sub AcceptBtn_Click(sender As System.Object, e As System.EventArgs) Handles AcceptBtn.Click
Dim InsertTournamentQuery As String = "INSERT INTO Tournaments (SanctioningID, TournamentName, TournamentVenue, Game, Format, OrganizerID, PairingSystem, TournamentDateTime) VALUES (?,?,?,?,?,?,?,?)"
Dim LastRowSelect As String = "SELECT @@IDENTITY"
Dim LastRowID As Integer
Dim DBconnection As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|Master.mdb"
Using connection As New OleDb.OleDbConnection(DBconnection)
Using cmd As New OleDb.OleDbCommand(InsertTournamentQuery, connection)
cmd.Parameters.AddWithValue("?", SanctionID)
cmd.Parameters.AddWithValue("?", Trim(TrnNameTxt.Text))
cmd.Parameters.AddWithValue("?", Int(TrnVenueLst.SelectedValue))
cmd.Parameters.AddWithValue("?", GameLst.SelectedValue)
cmd.Parameters.AddWithValue("?", Convert.ToInt32(FormatLst.SelectedValue))
cmd.Parameters.AddWithValue("?", OrganizerID)
cmd.Parameters.AddWithValue("?", Convert.ToInt32(PairingLst.SelectedValue))
cmd.Parameters.AddWithValue("?", TrnDate.Value)
connection.Open()
cmd.ExecuteNonQuery()
cmd.CommandText = LastRowSelect
LastRowID = cmd.ExecuteScalar()
connection.Close()
End Using
End Sub
ミリ秒を取り除くために私が知っている最も簡単な方法は、このような方法を作ることです? –
TrnDateは日付ピッカーからのフォームコントロールです。 .Valueはユーザーが選択した結果です。 –