使用VB.Net将文本从文本框中插入并访问Access 2010数据库 [英] Insert text from a text box into and Access 2010 DataBase using VB.Net
问题描述
我有3个文本框用作联系表格.我正在尝试使用VB来获取这些数据并将其添加到我的数据库中. 我已经运行调试,它说错误在INSERT INTO字符串中. ![调试的屏幕抓图] [1]: http://i.stack.imgur.com/ufYPs.png
I have 3 text boxes I am using as a contact form. I am trying to use VB to take this data and add it into my database. I have run debugging and it says the error is in the INSERT INTO string. ![Screen Grab of Debugging] [1]: http://i.stack.imgur.com/ufYPs.png
有什么想法吗?
Imports System
导入System.Data 导入System.Data.OleDb 部分课程联系 继承System.Web.UI.Page
Imports System.Data Imports System.Data.OleDb Partial Class Contact Inherits System.Web.UI.Page
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim Name As String = txtName.Text
Dim Email As String = tbxEmail.Text
Dim Comment As String = tbxComment.Text
Dim objConnection As OleDbConnection = Nothing
Dim objcmd As OleDbCommand = Nothing
Dim strSql As String
Dim dbConn As OleDbConnection = Nothing
dbConn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source = Z:\Documents\Databases\user.accdb")
dbConn.Open()
strSql = "INSERT INTO user (username, email, comments) VALUES (?,?,?)"
objcmd = New OleDbCommand(strSql, dbConn)
objcmd.Parameters.Add(New System.Data.OleDb.OleDbParameter("@username", Name))
objcmd.Parameters.Add(New System.Data.OleDb.OleDbParameter("@email", Email))
objcmd.Parameters.Add(New System.Data.OleDb.OleDbParameter("@comments", Comment))
objcmd.ExecuteNonQuery()
dbConn.Close()
Response.Write("Submitted Successfully")
End Sub
推荐答案
USER是MS-Access中的保留关键字,要将其用作表名,需要将其括在方括号中
USER is a reserved keyword in MS-Access, To use it as a table name your need to enclose it in square brackets
strSql = "INSERT INTO [user] (username, email, comments) VALUES (?,?,?)"
作为旁注,尝试使用使用语句您要处理一次性物品.
As a side note, try to use the Using Statement when you work with disposable objects.
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim Name As String = txtName.Text
Dim Email As String = tbxEmail.Text
Dim Comment As String = tbxComment.Text
Using dbConn = New OleDbConnection(".......")
dbConn.Open()
Dim strSql = "INSERT INTO [user] (username, email, comments) VALUES (?,?,?)"
Using objcmd = New OleDbCommand(strSql, dbConn)
objcmd.Parameters.AddWithValue("@username", Name)
objcmd.Parameters.AddWithValue("@email", Email)
objcmd.Parameters.AddWithValue("@comments", Comment)
objcmd.ExecuteNonQuery()
End Using
End Using
Response.Write("Submitted Successfully")
End Sub
这篇关于使用VB.Net将文本从文本框中插入并访问Access 2010数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!