2016-12-16 6 views
-1

ich einen Fehler bei cmd.ExecuteNonQuery angetroffen() bei Verwendung INSERT INTO:INSERT INTO - cmd.ExecuteNonQuery() - VB.Net

Eine nicht behandelte Ausnahme des Typs 'System.Data.SqlClient.SqlException' aufgetreten in System.Data.dll

Zusätzliche Informationen: Falsche Syntax in der Nähe von 'https:'.

Froh, wenn jemand helfen kann.

Imports System.Data.SqlClient 

    Public Class Form1 
     Dim con As New SqlConnection 

     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 

      WebBrowser1.Navigate(url) 

      While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete 
       Application.DoEvents() 
      End While 

      RichTextBox1.Text = WebBrowser1.DocumentText 

      con.Open() 
      Dim cmd As New SqlCommand(("INSERT INTO tTempList (ExtData) VALUES('" & RichTextBox1.Text & "')"), con) 
      cmd.ExecuteNonQuery() 
      con.Close() 
     End Sub 

     Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
      con.Connectionstring = "Server=SURFACEPRO\SQLEXPRESS;Initial Catalog=PropApp;Integrated Security=True" 
     End Sub 

    End Class 
+0

Ich denke, RichTextBox1.Text haben einige ungültige Charater by.which Abfrage kann .please Pick-Abfrage ausführen, während in Debugging-Modus ausgeführt. Dann führen Sie diese Abfrage in sql .check, was passiert .I denken, dass Sie eine Lösung erhalten. –

+0

Vielen Dank für Ihre schnelle Beratung. Wird versuchen und aktualisieren. – Toh

+0

Verwenden Sie Parameter auch @Toh. Es lohnt sich am Ende. – Bugs

Antwort

0

Ich denke, du hast 'irgendwo in dir Textbox. Sie sollten immer sqlparameters verwenden, um diese Art von Fehlern zu vermeiden, und SQL-Injektion

+0

Vielen Dank für Ihre schnelle Beratung. werde versuchen, das Ergebnis zu aktualisieren. – Toh

3

Verwenden Sie Sql-Parameter!

Wenn Sie Parameter verwenden, werden Sie nie solche Probleme haben. Zusätzlich werden Sie durch Parameter vor einer möglichen SQL-Injektion geschützt.

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    WebBrowser1.Navigate(url) 
    While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete 
     Application.DoEvents() 
    End While 
    RichTextBox1.Text = WebBrowser1.DocumentText 

    Using connection As New SqlConnection() 
     connection.Open() 
     Dim query As String = "INSERT INTO tTempList (ExtData) VALUES (@ExtData)" 
     Dim parameter As New SqlParameter With 
     { 
      .ParameterName = "@ExtData", 
      .SqlDbType = SqlDbType.VarChar, 
      .Value = RichTextBox1.Text 
     } 

     Usinig command As New SqlCommand(query, conn) 
      command.Parameters.Add(parameter) 
      command.ExecuteNonQuery() 
     End Using 
    End Using 

End Sub 
+0

Danke für Ihre schnelle Beratung und Hilfe. werde versuchen, das Ergebnis zu aktualisieren. – Toh

+0

Verwenden Sie dieses Beispiel, das Fabio so freundlich war, @Toh zu erstellen. Wird dir eine Menge Ärger ersparen. – Bugs

+0

Danke Danke. – Toh

0

Dieser Code Arbeit für mich ...

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    WebBrowser1.Navigate(url) 
    While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete 
     Application.DoEvents() 
    End While 
    RichTextBox1.Text = WebBrowser1.DocumentText 

    Using connection As New SqlConnection() 
     connection.Open() 
     Dim query As String = "INSERT INTO tTempList (ExtData,oCategory,oSubcategory) VALUES (@ExtData,@oCategory,@oSubcategory)" 

     Using Command As New SqlCommand(query, con) 

      Command.Parameters.Add("@ExtData", SqlDbType.VarChar) 
      Command.Parameters("@ExtData").Value = RichTextBox1.Text 
      Command.Parameters.Add("@oCategory", SqlDbType.VarChar) 
      Command.Parameters("@oCategory").Value = CmbCategory.Text 
      Command.Parameters.Add("@oSubcategory", SqlDbType.VarChar) 
      Command.Parameters("@oSubcategory").Value = cmbSubcategory.Text 

      Command.ExecuteNonQuery() 
     End Using 
    End Using 

End Sub 

Danke Fabio für Ihre Güte zu führen. Danke Zach und Jinx88909 für Ihren Rat auch.