0

我收到错误消息

“在表中插入记录时出错......关键字'return'附近的语法不正确。','附近的语法不正确。”

Public Class Form10
    Dim con As New SqlClient.SqlConnection
    Dim cmd, com As New SqlClient.SqlCommand
    Dim sqlda As New SqlClient.SqlDataAdapter
    Dim ds As New DataSet


 Private Sub Form10_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Try
            con.ConnectionString = "data source=.\sqlexpress;initial catalog =pharmacy;Integrated Security =true"
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Connection Error", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error)
        End Try
    End Sub

     Private Sub btnclear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnclear.Click
        txtdcode.Text = ""
        txtrinvo.Text = ""
        txtcreg.Text = ""
        txtprice.Text = ""
        txtqty.Text = ""
        txttamount.Text = ""
        DateTimePicker1.Text = ""
    End Sub

     Private Sub btnsearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsearch.Click
        con.Open()
        Try
            sqlda = New System.Data.SqlClient.SqlDataAdapter("SELECT * FROM return where r_invoice_no='" & txtrinvo.Text & "'", con)
            ds.Clear()
            sqlda.Fill(ds, "return")
            txtdcode.Text = ds.Tables("return").Rows(0).Item(0)
            txtcreg.Text = ds.Tables("return").Rows(0).Item(1)
            txtprice.Text = ds.Tables("return").Rows(0).Item(2)
            txtqty.Text = ds.Tables("return").Rows(0).Item(3)
            txttamount.Text = ds.Tables("return").Rows(0).Item(4)
            DateTimePicker1.Text = ds.Tables("return").Rows(0).Item(5)

            ProgressBar1.Visible = True
            ProgressBar1.Minimum = 0
            ProgressBar1.Maximum = 10000
            ProgressBar1.Value = 0

            Dim I As Integer
            For I = ProgressBar1.Minimum To ProgressBar1.Maximum
                ProgressBar1.Value = I
            Next

            ProgressBar1.Visible = False

        Catch ex As IndexOutOfRangeException
            MsgBox("Type correct Return Invoice Number to search.." & ex.Message, MsgBoxStyle.Critical, "TRY AGAIN")
        Finally
            con.Close()
        End Try
    End Sub



Private Sub btnadd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnadd.Click
        con.Open()
        Try
            If txtdcode.Text = "" Or txtrinvo.Text = "" Or txtcreg.Text = "" Or txtprice.Text = "" Or txtqty.Text = "" Or txttamount.Text = "" Or DateTimePicker1.Text = "" Then
                MsgBox("You must have to fill all the Book details.")
            Else

                Dim strInst As String = "INSERT INTO return(drug_code,c_reg_no,Sale_price,qty,Tot_amount,date,r_invoice_no)VALUES('" & txtdcode.Text & "','" & txtcreg.Text & "','" & txtprice.Text & "','" & txtqty.Text & "','" & txttamount.Text & "','" & DateTimePicker1.Text & "','" & txtrinvo.Text & "')"
                Dim cmd_Insert As New System.Data.SqlClient.SqlCommand(strInst, con)
                cmd_Insert.ExecuteNonQuery()

                ProgressBar1.Visible = True
                ProgressBar1.Minimum = 0
                ProgressBar1.Maximum = 10000
                ProgressBar1.Value = 0

                Dim I As Integer
                For I = ProgressBar1.Minimum To ProgressBar1.Maximum
                    ProgressBar1.Value = I
                Next

                MsgBox("New Recored has been Added", MsgBoxStyle.Information)

                ProgressBar1.Visible = True

                txtdcode.Text = ""
                txtrinvo.Text = ""
                txtcreg.Text = ""
                txtprice.Text = ""
                txtqty.Text = ""
                txttamount.Text = ""
                DateTimePicker1.Text = ""

            End If
        Catch ex As Exception

            MessageBox.Show("Error while inserting record on table..." & ex.Message, "Error Inserting")
        Finally
            con.Close()
        End Try

    End Sub



Private Sub btnupdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnupdate.Click
        Try
            con.Open()
            com.Connection = con
            com.CommandText = "UPDATE return SET drug_code ='" & txtdcode.Text & "',c_reg_no='" & txtcreg.Text & "',Sale_price='" & txtprice.Text & "',qty='" & txtqty.Text & "',Tot_amount='" & txttamount.Text & "',date='" & DateTimePicker1.Text & "'"
            com.ExecuteNonQuery()

            ProgressBar1.Visible = True
            ProgressBar1.Minimum = 0
            ProgressBar1.Maximum = 10000
            ProgressBar1.Value = 0

            Dim I As Integer
            For I = ProgressBar1.Minimum To ProgressBar1.Maximum
                ProgressBar1.Value = I
            Next

            MsgBox("Your rocord has been Updated", MsgBoxStyle.Information, "Update Records")

            ProgressBar1.Visible = False

            txtdcode.Text = ""
            txtrinvo.Text = ""
            txtcreg.Text = ""
            txtprice.Text = ""
            txtqty.Text = ""
            txttamount.Text = ""
            DateTimePicker1.Text = ""

        Catch ex As Exception
            MessageBox.Show("Error while updating password on table..." & ex.Message, "Insert Records")

        Finally
            con.Close()
        End Try
    End Sub



Private Sub btndelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btndelete.Click
        Try
            con.Open()

            com.Connection = con
            com.CommandText = "Delete From return Where r_invoice_no=" & txtrinvo.Text
            com.ExecuteNonQuery()

            ProgressBar1.Visible = True
            ProgressBar1.Minimum = 0
            ProgressBar1.Maximum = 10000
            ProgressBar1.Value = 0

            Dim I As Integer
            For I = ProgressBar1.Minimum To ProgressBar1.Maximum
                ProgressBar1.Value = I
            Next

            MsgBox("Records are deleted with Return Invoice Number..." & txtrinvo.Text, MsgBoxStyle.Information, "Record  Deleted.")

            ProgressBar1.Visible = False

            txtdcode.Text = ""
            txtrinvo.Text = ""
            txtcreg.Text = ""
            txtprice.Text = ""
            txtqty.Text = ""
            txttamount.Text = ""
            DateTimePicker1.Text = ""

        Catch ex As InvalidCastException
            MessageBox.Show("Error while retrieving records on table..." & ex.Message, "Load Records")

        Finally
            con.Close()
        End Try
    End Sub

End Class
4

1 回答 1

1

更改此行:

Dim strInst As String = "INSERT INTO return(drug_code,c_reg_no,Sale_price,qty,Tot_amount,date,r_invoice_no)VALUES('" & txtdcode.Text & "','" & txtcreg.Text & "','" & txtprice.Text & "','" & txtqty.Text & "','" & txttamount.Text & "','" & DateTimePicker1.Text & "','" & txtrinvo.Text & "')"

对此:

Dim strInst As String = "INSERT INTO [return](drug_code,c_reg_no,Sale_price,qty,Tot_amount,date,r_invoice_no)VALUES('" & txtdcode.Text & "','" & txtcreg.Text & "','" & txtprice.Text & "','" & txtqty.Text & "','" & txttamount.Text & "','" & DateTimePicker1.Text & "','" & txtrinvo.Text & "')"

注意表名周围的方括号。Return 是 SQL Server 中的保留字,它会导致您的错误。我建议您更改表的名称。如果这是不可能的,那么您每次使用表格时都会被卡住添加方括号。

于 2013-05-08T16:58:39.953 回答