使用VB.NET中的Access 2007查询
我有一个access数据库设置,我正在通过ODBC连接到该设置,access文件已经生成了所有必需的查询,我只想从我的应用程序中调用它们 我正在使用Visual Basic.NET,这是我迄今为止尝试过的 提前感谢您提供的任何帮助 本使用VB.NET中的Access 2007查询,vb.net,ms-access-2007,Vb.net,Ms Access 2007,我有一个access数据库设置,我正在通过ODBC连接到该设置,access文件已经生成了所有必需的查询,我只想从我的应用程序中调用它们 我正在使用Visual Basic.NET,这是我迄今为止尝试过的 提前感谢您提供的任何帮助 本 那么,你的问题是什么 查看上面的代码,您不需要dataAdapter。 您可以调用command.ExecuteOnQuery来完成这项工作 编辑:另外,您可以将OdbcConnection&odbc命令包装在using…end-using块中。下面是VB代码 P
那么,你的问题是什么 查看上面的代码,您不需要dataAdapter。 您可以调用command.ExecuteOnQuery来完成这项工作 编辑:另外,您可以将OdbcConnection&odbc命令包装在using…end-using块中。下面是VB代码
Public Sub AddClient(ByVal abn As String, ByVal companyName As String, _
ByVal contactName As String, ByVal phoneNumber As String, _
ByVal address As String)
'Dim command As OdbcCommand = New OdbcCommand
Using cnx As New OdbcConnection(My.Settings.connectionString)
Using command As New OdbcCommand
command.Connection = cnx
command.CommandText = "sp_InsertClient"
command.CommandType = CommandType.StoredProcedure
'//====== create ABN paramenter =============
Dim param1 As OdbcParameter = New OdbcParameter("inABN", abn)
param1.Direction = ParameterDirection.Input
param1.DbType = DbType.String
'add abn parameter
command.Parameters.Add(param1)
'//====== create CompanyName Parameter ================
Dim param2 As OdbcParameter = New OdbcParameter("inCompanyName", companyName)
param2.Direction = ParameterDirection.Input
param2.DbType = DbType.String
'add the parameter
command.Parameters.Add(param2)
'//======== create ContactName Param ===============
Dim param3 As OdbcParameter = New OdbcParameter("inContactName", contactName)
param3.Direction = ParameterDirection.Input
param3.DbType = DbType.String
'add the parameter
command.Parameters.Add(param3)
'//=========== create PhoneNumber Parameter ===============
Dim param4 As OdbcParameter = New OdbcParameter("inPhoneNumber", phoneNumber)
param4.Direction = ParameterDirection.Input
param4.DbType = DbType.String
'add paramater
command.Parameters.Add(param4)
'//=========== create Address Parameter ===============
Dim param5 As OdbcParameter = New OdbcParameter("inAddress", address)
param5.Direction = ParameterDirection.Input
param5.DbType = DbType.String
'add paramater
command.Parameters.Add(param5)
Try
cnx.Open()
command.ExecuteNonQuery()
Catch ex As Exception
MessageBox.Show(ex.Message, "Error", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End Try
End Using
End Using
MessageBox.Show("DONE")
End Sub
这是我在Access中的查询
INSERT INTO tblClients ( ABN, CompanyName, ContactName, PhoneNumber, Address )
VALUES ([inABN], [inCompanyName], [inContactName], [inPhoneNumber], [inAddress]);
感谢所有的帮助…编辑了我的旧答案。。。这是错误的
根据和,你做得对
在access中使用预构建查询的另一种方法是将它们定义为access中的存储过程。这是一个很好的概述。感谢他们的链接,我已经看到了它们,但错过了添加EXECUTE,它似乎正在运行查询,但我的参数尚未传递到access查询 我已经测试,我的参数已添加到命令中,但未添加到access查询中 我还尝试了Parameters.AddWithValueparamname,value 但这是同样的结果 此外,我还更改了我的查询以访问此,在不需要的地方显示了方括号 插入tblClients ABN、CompanyName、ContactName、PhoneNumber、Address 值inABN、UNCOMNYNAME、inContactName、inPhoneNumber、inAddress 谢谢
Ben很抱歉,我应该解释更多,我删除了dataAdapter,只使用了command.ExecuteOnQuery,但仍然是相同的错误无效SQL语句;应为“删除”、“插入”、“过程”、“选择”或“更新”。我的问题是,当查询在access中运行时,代码可能会有什么问题。编辑代码并显示您目前拥有的代码以及sp_插入的代码。
INSERT INTO tblClients ( ABN, CompanyName, ContactName, PhoneNumber, Address )
VALUES ([inABN], [inCompanyName], [inContactName], [inPhoneNumber], [inAddress]);