簡體   English   中英

語法錯誤:插入 SQL VB.NET

[英]SYNTAX ERROR : Insert SQL VB.NET

我是編碼、改變職業和自學的初學者+注冊了自費課程以進入編程。 我之前發布了一些類似的問題,但現在我的代碼中有更大的問題! 它部分工作,直到我搞砸了:(..我有一個表格,用戶將填寫然后將其存儲到 Microsoft Access 數據庫中,當它工作時,輸入的第一個詳細用戶完美地存儲到我的表中,但第二個詳細信息它跳過了第一個字段(在我的例子中是名字)並將名字存儲到姓氏(我的第二個字段)基本上每次跳過一個字段並從以下字段開始(希望我很清楚!)..現在我改變了我的代碼,它一直給我語法錯誤,我檢查了不同的教程和不同的語法(它們都使用不同的語法)但是這個錯誤非常持久!

請幫幫我..下面是我的代碼

導入 System.Data.OleDb

Public Class FirstCode
    Inherits System.Web.UI.Page
    Dim provider As String
    Dim dataFile As String
    Dim connString As String
    Dim myConnection As OleDbConnection = New OleDbConnection

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    End Sub

    Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles save.Click
        provider = "Provider= Microsoft.ACE.OLEDB.15.0;Data Source = "
        dataFile = "C:\Users\Data.accdb"
        connString = provider & dataFile
        myConnection.ConnectionString = connString
        myConnection.Open()
        Dim str As String

        str = "INSERT INTO RegisterList (FirstName,Surname,Email,Location,ZipCode,Num,[Password]) + VALUES (@FirstName,@Surname,@Email,@Location,@ZipCode,@Num,@Pass)"

        str = " Insert into RegisterList (FirstName) Values(@FirstName)"
        str = " Insert into RegisterList (Surname) Values(@Surname)"
        str = " Insert into RegisterList (Email) Values(@Email)"
        str = " Insert into RegisterList (Location) Values(@Location)"
        str = " Insert into RegisterList (ZipCode) Values(@ZipCode)"
        str = " Insert into RegisterList (Num) Values(@Num)"
        str = " Insert into RegisterList (Password) Values(@Pass)"

        Dim cmd As OleDbCommand = New OleDbCommand(str, myConnection)
        cmd.Parameters.AddWithValue("@FirstName", TextBox2.Text)
        cmd.Parameters.AddWithValue("@Surname", TextBox3.Text)
        cmd.Parameters.AddWithValue("@Email", TextBox3.Text)
        cmd.Parameters.AddWithValue("@Location", DropDownList1.Text)
        cmd.Parameters.AddWithValue("@CourtName", TextBox4.Text)
        cmd.Parameters.AddWithValue("@Homecare", TextBox5.Text)
        cmd.Parameters.AddWithValue("@Pass", TextBox6.Text)

        cmd.ExecuteNonQuery()
        myConnection.Close()

    End Sub

    Protected Sub Button1_Click1(sender As Object, e As EventArgs) Handles Button1.Click

    End Sub
End Class
  1. 這看起來像是 VB 的某種風格,而不是 VBScript。 Asp-classic 使用 VBScript 或 JavaScript,而不是 VB。

  2. 想想這里發生了什么:

     ... str = " Insert into RegisterList (FirstName) Values(@FirstName)" str = " Insert into RegisterList (Surname) Values(@Surname)" ...

    第二行后str的值是多少? 所以當你的代碼到達

    Dim cmd As OleDbCommand = New OleDbCommand(str, myConnection)

    str的值是多少? (上面肯定是VB的,不是VBScript的。VBScript不能做dim x As ,別提New 。)

  3. 為什么下一行有一個+號? (為了便於閱讀,我已將其分成多行。)

     str = "INSERT INTO RegisterList" _ & " (FirstName,Surname,Email,Location,ZipCode,Num,[Password])" _ & " + VALUES (@FirstName,@Surname,@Email,@Location,@ZipCode,@Num,@Pass)" ' ^ that plus sign - why is it there?
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles save.Click
provider = "Provider= Microsoft.ACE.OLEDB.15.0;Data Source = "
dataFile = "C:\Users\Data.accdb"
connString = provider & dataFile
myConnection.ConnectionString = connString
myConnection.Open()
Dim str As String

str = "INSERT INTO RegisterList (FirstName,Surname,Email,Location,ZipCode,Num,[Password]) VALUES(@FirstName,@Surname,@Email,@Location,@ZipCode,@Num,@Pass)"

Dim cmd As OleDbCommand = New OleDbCommand(str, myConnection)
cmd.Parameters.AddWithValue("@FirstName", TextBox2.Text)
cmd.Parameters.AddWithValue("@Surname", TextBox3.Text)
cmd.Parameters.AddWithValue("@Email", TextBox3.Text)
cmd.Parameters.AddWithValue("@Location", DropDownList1.Text)
cmd.Parameters.AddWithValue("@ZipCode", TextBox4.Text)
cmd.Parameters.AddWithValue("@Num", TextBox5.Text)
cmd.Parameters.AddWithValue("@Pass", TextBox6.Text)


cmd.ExecuteNonQuery()
myConnection.Close()




End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM