我在VB.net应用程序中有以下代码,它在MS Access中运行存储过程。存储过程是基于数据库中其他2个查询的结果的插入查询。
当我在Access中手动运行Insert查询时,它运行正常并按预期插入记录,没有错误或警告。但是,当我使用我的vb.net应用程序中的ExecuteNonQuery()运行时,我总是得到0,因为插入的记录数量并没有将任何记录插入表中。代码运行没有错误。我已经在同一个数据库中使用其他插入查询测试了代码,它工作正常,所以我知道它不是代码或连接。问题似乎与我的查询有关,但我无法弄清楚它在Access中的作用,而不是来自ExecuteNonQuery()。抱歉,我无法发布确切的查询。我使用的是VB.Net 2010和MS Access 2013。
请帮助!!!
以下是我存储的查询的通用版本:
INSERT INTO Table1 ( TESTID, Field1, Field2, Field3, DateImported )
SELECT DISTINCT Table2.Value1, Table2.Value2, Table2.Value3, Table2.Value4, Date() AS TodaysDate
FROM Table3 INNER JOIN Table2 ON Table3.TESTID = Table2.TESTID
我在有DISTINCT和没有DISTINCT的情况下尝试了它,我仍然遇到同样的问题
这是我的代码:
Dim conn As New OleDbConnection(MyConnectionString)
Try
Using conn
Using cmd As New OleDbCommand("My_Insert_Query", conn)
conn.Open()
cmd.CommandType = CommandType.StoredProcedure
NumRecordsAdded = cmd.ExecuteNonQuery()
End Using
End Using
Catch ex As Exception
MsgBox(ex.Message)
conn.Close()
End Try