2017-04-03 77 views
0

我試圖插入日期(只)從dateTimePicker的MySQL數據庫,但錯誤發生VB.NET - 插入日期到MySQL數據庫錯誤

enter image description here

格式我使用

DateTimePicker1.Value.Date.ToString("yyyy/MM/dd") 

在我的MySQL數據庫,我使用DATE數據類型

當我嘗試顯示在VB日期顯示它

enter image description here

日期格式正確顯示,yyyy/MM/dd不過,我仍然不能將其插入到我的數據庫。

編輯: 我的代碼插入到數據庫

Dim namaBarang, satuan, sql As String 
     Dim idtoko = formStok.pIdToko 
     Dim tglTransaksi = DateTimePicker1.Value.Date.ToString("yyyy/MM/dd") 
     Dim qty, idBarang As Integer 
     Dim noTrans = Label2.Text 
     strcon.Open() 
     For x As Integer = 0 To dataListTransaksi.Rows.Count - 1 Step 1 
      namaBarang = dataListTransaksi.Rows(x).Cells(2).Value.ToString 
      idBarang = dataListTransaksi.Rows(x).Cells(1).Value.ToString 
      satuan = dataListTransaksi.Rows(x).Cells(3).Value.ToString 
      qty = dataListTransaksi.Rows(x).Cells(4).Value.ToString 

      sql = "BEGIN; 
        INSERT 
      INTO 
        `tbl_transaksi`(
        `tbl_transaksi`.`no_transaksi`, 
        `tbl_transaksi`.`tgl_transaksi`, 
        `tbl_transaksi`.`id_toko` 
        ) 
       VALUES(" & noTrans & ", " & tglTransaksi & ", " & idtoko & "); 
       INSERT 
      INTO 
        `tbl_transaksi_detail`(
        `tbl_transaksi_detail`.`no_transaksi`, 
        `tbl_transaksi_detail`.`id_barang`, 
        `tbl_transaksi_detail`.`qty`, 
        `tbl_transaksi_detail`.`unit` 
        ) 
       VALUES(" & noTrans & ", " & idBarang & ", " & qty & ", '" & satuan & "'); 
       COMMIT;" 

      Try 

       'HOLDS THE DATA TO BE EXECUTED 
       With cmd 
        .Connection = strcon 
        .CommandText = sql 
        'EXECUTE THE DATA 
        result = cmd.ExecuteNonQuery 
        'CHECKING IF THE DATA HAS EXECUTED OR NOT AND THEN THE POP UP MESSAGE WILL APPEAR 
        If result = 0 Then 
         MsgBox("FAILED TO SAVE THE DATA", MsgBoxStyle.Information) 
        Else 
         MsgBox("DATA HAS BEEN SAVE IN THE DATABASE") 
        End If 
       End With 
      Catch ex As Exception 
       MsgBox(ex.Message) 
      End Try 

     Next 
     strcon.Close() 
+1

也許如果你顯示你的插入查詢有人可以幫助你嗎? –

+4

我認爲你的插入語句不知道你正在輸入一個字符串..也許你正在做類似(2017/04/03)而不是('2017/04/03'),因爲發生的事情是2017年除以4除以3 =值 –

+0

@AFriend我添加了一些代碼來質疑。 – reynd

回答

0

我忘了加單引號的周圍日期值

sql = "BEGIN; 
        INSERT 
      INTO 
        `tbl_transaksi`(
        `tbl_transaksi`.`no_transaksi`, 
        `tbl_transaksi`.`tgl_transaksi`, 
        `tbl_transaksi`.`id_toko` 
        ) 
       VALUES(" & noTrans & ", " & tglTransaksi & "<<==THE PROBLEM IS HERE, " & idtoko & "); 
       INSERT 
      INTO 
        `tbl_transaksi_detail`(
        `tbl_transaksi_detail`.`no_transaksi`, 
        `tbl_transaksi_detail`.`id_barang`, 
        `tbl_transaksi_detail`.`qty`, 
        `tbl_transaksi_detail`.`unit` 
        ) 
       VALUES(" & noTrans & ", " & idBarang & ", " & qty & ", '" & satuan & "'); 
       COMMIT;" 

,所以我改變它

​​

解決了!

+1

你應該看看SQL參數。 – Bugs

+0

SQL參數的許多優點之一是這種問題是不可能的 – Plutonix