2016-05-30 7 views
0

VB Net経由でMS AccessデータベースにDate値を挿入しようとしましたが、「xxxxxをタイムパンに変換できません」というエラーが表示されます。私はこれを試してみました:アクセスデータベース(VB Net)に時間を挿入する方法

ComandoBD.Parameters.Add("@Hora", OleDbType.DBTime).Value = TimeOfDay.ToString("HH:mm:ss") 

ComandoBD.Parameters.Add("@Hora", OleDbType.DBTime).Value = TimeOfDay 

ComandoBD.Parameters.Add("@Hora", OleDbType.DBTime).Value = time.TimeOfDay 

しかし、何も、唯一の時間のためのオプションがないため、時間フィールドが「日付/時刻」に設定されているAccessデータベースで。

これは、そのセクションの全体の抜粋です:

For i As Integer = 0 To Form2.DataGridView2.Rows.Count - 2 
      Try 
       ConexionBD.Open() 
       ComandoBD.Connection = ConexionBD 
       ComandoBD.CommandText = "INSERT INTO Ventas (IdProducto, Fecha, Hora) VALUES (@IdProducto, @Fecha, @Hora)" 
       ComandoBD.Parameters.Add("@IdProducto", OleDbType.VarChar).Value = Form2.DataGridView2.Rows(i).Cells(0).Value 
       ComandoBD.Parameters.Add("@Fecha", OleDbType.DBDate).Value = Now 

       ComandoBD.Parameters.Add("@Hora", OleDbType.DBTime).Value = time.TimeOfDay 

       ComandoBD.ExecuteNonQuery() 
       ComandoBD.Dispose() 
      Catch ex As Exception 
       MsgBox(ex.ToString) 
      End Try 
      ConexionBD.Close() 
     Next 

私はそれを行うと(他のフィールドのために)OleDbType.Booleanまたは私はどんな問題を抱えているドントさえOleDbType.Binary OleDbType.VarChar、と。

助けてください。

ありがとうございました。

+1

は'日/ Time'です。あなたはそれに変換エラーを得るべきではありません。他に何かがある場合に備えて、クエリ全体を表示することもできます。 – Plutonix

+0

ありがとうPlutonix、私は最後のもの(time.TimeOfDay)を試してみたときにコードを更新しました。それは 'time'を宣言するために必要であると宣言しています。 –

+1

宣言されていない変数は、全く異なるエラーであり、変換とは関係ありません。 'DateTime.Now.TimeOfDay'は動作する' Timespan'を返します。 – Plutonix

答えて

1

使用して、最後の1 OleDbType.DBTime`だけの時間のための正しい `使用して、DBの列を提供

ComandoBD.Parameters.Add("@Hora", OleDbType.DBTime).Value = DateTime.Now.TimeOfDay 
+0

ありがとうNineBerry今すぐ素晴らしい(y) –

関連する問題