如何使用 vb.net 从查找不匹配记录的查询中插入行到 MS Access
How to insert rows in MS Access from query that finds unmatched records using vb.net
我有 2 tables 'tbl_Images' 和 'tbl_ImagesDetails'。第一个 table 具有在第二个 table 中找不到的 ImageID。
我做了一个查询,首先找到不匹配的记录,然后将结果行添加到第二个 table。
如果我 运行 在 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
上面的查询应该 return 9 行,但是 iResult = 0
我的问题:
确认对话框有问题吗?如果是这样,我如何使用 vb 代码覆盖?
ExecuteNonQuery() 是否允许一次插入多行?
如何插入作为另一个查询结果的行(即在同一个查询中)?
1)确认对话框是否碍事?如果是这样,我如何使用 vb 代码覆盖?
回答:如果您通过代码执行命令,则没有确认框,即 vb.net
2) ExecuteNonQuery() 是否允许一次插入多行?
回答:是
3) 如何插入作为另一个查询结果的行(即在同一个查询中)?
我认为您需要检查 vb.net 中查询获取的 results/records,可能没有获得任何记录。最好编写一个函数来检查获取的记录。其他好像还行。
希望对您有所帮助!
我有 2 tables 'tbl_Images' 和 'tbl_ImagesDetails'。第一个 table 具有在第二个 table 中找不到的 ImageID。
我做了一个查询,首先找到不匹配的记录,然后将结果行添加到第二个 table。
如果我 运行 在 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
上面的查询应该 return 9 行,但是 iResult = 0
我的问题:
确认对话框有问题吗?如果是这样,我如何使用 vb 代码覆盖?
ExecuteNonQuery() 是否允许一次插入多行?
如何插入作为另一个查询结果的行(即在同一个查询中)?
1)确认对话框是否碍事?如果是这样,我如何使用 vb 代码覆盖?
回答:如果您通过代码执行命令,则没有确认框,即 vb.net
2) ExecuteNonQuery() 是否允许一次插入多行?
回答:是
3) 如何插入作为另一个查询结果的行(即在同一个查询中)?
我认为您需要检查 vb.net 中查询获取的 results/records,可能没有获得任何记录。最好编写一个函数来检查获取的记录。其他好像还行。
希望对您有所帮助!