【发布时间】:2018-04-26 03:55:59
【问题描述】:
我试图将多行放入一个表中,因此我尝试获取行号并将其放入 for 循环中,countC 与 select 语句的行数完全相同,所以问题不在于那里
我正在使用 oledb 连接,因为我的代码在 vb asp.net 中,但我的数据库在 ms access 2003 中
For c As Integer = 1 To countC
Dim cmdstring As String
cmdstring = " INSERT INTO [KN - ProductionMachineAllocation] (BatchNo, ComponentID)
SELECT POH.BatchNo, SSCDD.ComponentID
FROM (
SELECT ROW_NUMBER() OVER (ORDER BY BatchNo ASC) AS rownumber
([KN - ProductionOrderHeader] AS POH
INNER JOIN [FG - End Product Codes] AS EPC
ON POH.ProductID = EPC.ProductID)
INNER JOIN ([KN - ProductionOrderDetails] AS POD
INNER JOIN [FG - Style Size Comp Def Details] AS SSCDD
ON POD.SizeID = SSCDD.SizeID)
ON (POH.BatchNo = POD.BatchNo)
AND (EPC.StyleID = SSCDD.StyleID)
WHERE POH.BatchNo = '" & BatchNo & "'
) AS temptablename
WHERE rownumber IN (" & c & ");"
Dim con As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Shantara Production IT.mdb")
Dim cmd As New OleDbCommand(cmdstring)
cmd.CommandType = CommandType.Text
cmd.Connection = con
cmd.Connection.Open()
cmd.ExecuteNonQuery()
cmd.Connection.Close()
Next
我发现 ms 访问不支持 ROW_NUMBER() 所以我需要找到另一个遍历每一行,因为 ms 访问不支持通过插入到我的 select 语句中插入多行,关于我的问题的任何建议?
【问题讨论】:
-
你得到一个错误吗?还是只是一个 SQL 问题?在第二种情况下,我们需要数据库结构。
-
Row_Number() in Access select statement 中的答案有帮助吗?
标签: asp.net vb.net ms-access oledb insert-select