我是编码,改变职业和自学的初学者+注册自学课程以进入编程。我之前发布了一些类似的问题,但现在我的代码中存在更大问题! 它部分工作,直到我搞砸了:( ..我有一个表单,用户将填充然后存储到Microsoft Access数据库,当它工作时,第一个详细用户输入完全存储到我的表但第二次deatiled它跳过第一个字段(在我的情况下为firstname)并且将firstname存储到Surname(我的第二个字段),基本上每次它都是从一个字段中滑动并从以下字段开始(希望我很清楚!)..现在我改变了我的代码,它一直给我语法错误,我检查了不同的教程和不同的语法(它们都使用不同的语法)但这个错误非常持久!
请帮帮我..下面是mycode
Imports 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
答案 0 :(得分:0)
这看起来像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?
答案 1 :(得分:-1)
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