如何使用vb.net从查找中查找不匹配记录的MS Access中插入行

时间:2016-07-14 02:06:57

标签: vb.net ms-access-2010 executenonquery

我有两张桌子' tbl_Images'和' tbl_ImagesDetails'。第一个表格具有在第二个表格中找不到的ImageID。

我首先查询了一个查找不匹配记录的查询,然后将结果行添加到第二个表中。

如果我在Access 2010中运行查询,则会要求确认,然后添加行。

但是,如果我从VB.net运行它,它不会添加任何行,并且没有错误消息。这是代码:

Dim strsql As String = "INSERT INTO tbl_ImagesDetails ( ImageID )
SELECT tbl_Images.ImageID
FROM tbl_Images LEFT JOIN tbl_ImagesDetails ON tbl_Images.[ImageID] = tbl_ImagesDetails.[ImageID]
WHERE (((tbl_Images.ImageID) Like 'ZOOMED*') 
AND ((tbl_ImagesDetails.ImageID) Is Null));"        
'Debug.Print(strsql)

Dim MyConn As New OleDbConnection(connString)
Dim cmd As New OleDbCommand(strsql, MyConn)
cmd.CommandType = CommandType.Text

If Not MyConn.State = ConnectionState.Open Then MyConn.Open()

Dim iResult As Integer = cmd.ExecuteNonQuery()
Return iResult

上面的查询应返回9行,但iResult = 0

我的问题:

  1. 确认对话框是否妨碍了?如果是这样,我如何覆盖使用vb代码?

  2. ExecuteNonQuery()允许一次插入多行吗?

  3. 如何插入属于另一个查询的行(即在同一查询中)?

1 个答案:

答案 0 :(得分:0)

1)确认对话框是否妨碍了?如果是这样,我如何覆盖使用vb代码?

Ans:如果您通过代码执行命令,即vb.net

,则不会显示确认框

2)ExecuteNonQuery()允许一次插入多行吗?

答案:是的

3)如何插入作为另一个查询结果的行(即在同一查询中)?

我认为你需要检查vb.net中查询提取的结果/记录,可能没有得到任何记录。最好写一个函数来检查所获取的记录。否则似乎没问题。

希望这有帮助!