2016-05-27 25 views
-1
Dim sql As String = "INSERT INTO service VALUES ('', '" & ComboBox1.Text & "', '" & ListBox1.Text & "', '" & ListBox2.Text & "', '" & ListBox3.Text & "', '" & ComboBox2.Text & "', '" & ListBox6.Text & "', '" & ListBox5.Text & "', '" & ListBox4.Text & "', TO_DATE('" & DateTimePicker1.Text & "', 'dd-MM-YYYY')" 

fehlt Komma mir bitte helfen !!ora-00917 fehlt Komma in Insert-Anweisung

+5

Verwenden Sie vorbereitete Anweisungen, um dieses Chaos zu vermeiden. –

Antwort

1

Es sieht aus wie Sie ein Schließen Klammern nach dem TO_DATE() Aufruf fehlen, die Ihr Code verursacht zu denken, dass Sie einen zusätzlichen Parameter in der INSERT-Anweisung haben:

... TO_DATE('" & DateTimePicker1.Text & "', 'dd-MM-YYYY'))" 

Parametrierung, Nicht Verkettungs

Sie sollten wirklich Parameter verwenden, um Probleme wie diese zu vermeiden (zusätzlich zu dem Schutz, den sie gegen Übelkeit wie SQL Injection bieten. Ein Beispiel dafür, wie das aussehen könnte, kann unten gesehen werden:

' Build your connection ' 
Using connection As New OracleConnection("{your-connection-string}") 
    ' Build your query (using parameters) ' 
    Dim query = Dim sql As String = "INSERT INTO service VALUES ('', @combo1, @list1, @list2, @list3, @combo2, @list6, @list5, @list4, @date)" 

    ' Build a command to execute ' 
    Using command As New OracleCommand(query, connection) 
     ' Open your connection ' 
     connection.Open() 
     ' Add your parameters ' 
     command.Parameters.AddWithValue("@combo1",ComboBox1.Text) 
     command.Parameters.AddWithValue("@list1",ListBox1.Text) 
     ' More omitted for brevity ' 
     command.Parameters.AddWithValue("@date", DateTime.ParseExact(DateTimePicker1.Text,"dd-MM-yyyy", Nothing)) 

     ' Execute your command ' 
     command.ExecuteNonQuery() 
    End Using 
End Using