[英]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
這看起來像是 VB 的某種風格,而不是 VBScript。 Asp-classic 使用 VBScript 或 JavaScript,而不是 VB。
想想這里發生了什么:
... 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
。)
為什么下一行有一個+號? (為了便於閱讀,我已將其分成多行。)
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.