2017-04-03 4 views
0

ich versuche Datum einfügen (nur) von Datetimepicker zu MySQL-Datenbank, aber Fehler passierenVB.NET - Datum einfügen in MySQL Datenbank-Fehler

enter image description here

das Format i verwenden

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

in meiner mySQL-Datenbank, ich verwende DATE Datentyp

wenn ich versuche Datum in vb anzuzeigen es

zeigen

enter image description here

das Datumsformat richtig, yyyy/MM/dd aber immer noch angezeigt wird, kann ich es nicht auf meine Datenbank einfügen.

EDIT: meinen Code in die Datenbank einfügen

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

Vielleicht, wenn Sie Ihre einfügen Abfrage zeigen, kann jemand Ihnen helfen? –

+4

Ich denke, Ihre Insert-Anweisung weiß nicht, dass Sie eine Zeichenfolge eingeben .. Vielleicht machen Sie etwas wie (2017/04/03) statt ('2017/04/03'), weil was passiert 2017 geteilt durch 4 dividiert durch 3 = der Wert –

+0

@AFriend Ich habe einen Code zu Frage hinzugefügt. – reynd

Antwort

0

i Apostroph ist um Datumswert

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;" 

so dass ich ändern es

VALUES(" & noTrans & ", '" & tglTransaksi & "', " & idtoko & ");

hinzuzufügen vergessen

gelöst!

+1

Sie sollten in SQL-Parameter schauen. – Bugs

+0

Einer der vielen Vorteile von SQL-Parametern ist, dass diese Art von Problem nicht möglich ist – Plutonix