插入查询的ExecuteNonQuery()始终返回0

时间:2017-03-15 22:31:22

标签: vb.net ms-access executenonquery

我在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

0 个答案:

没有答案