And*_*ell 0 sql database ado.net ms-access
我实际上想UPDATE在Access数据库(通过ADO.NET)中的表上运行命令,但我希望它向后运行(即从最后一条记录到第一个记录),以避免重复相同的记录'ID'。
我尝试添加,& " ORDER BY ID DESC;"但这会引发错误,因为不允许这样做。
救命!
谢谢安迪
Dim dsxcmd As OleDbCommand
strSelect = "UPDATE Items SET ID=ID+1 WHERE ID>=" & lInsert.ToString
dsxcmd = New OleDbCommand(strSelect, cn)
dsxcmd.ExecuteNonQuery()
dsxcmd.Dispose()
Run Code Online (Sandbox Code Playgroud)
SQL是声明性的。因此,如果要按定义的顺序对更新进行排序,则需要进行游标操作(一次一行)-使用记录集,然后读取一行/写一行行循环。我认为Access没有服务器端游标,因此必须在客户端完成。
但是,如果要同时更新许多行,则需要先将它们更新为非冲突范围。
例如-首先将ID设为负数
UPDATE Items SET ID=ID * -1 WHERE ID>=...
Run Code Online (Sandbox Code Playgroud)
然后更新
UPDATE Items SET ID=(ID *-1) + 1 WHERE ... change where to pick up the new range
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
476 次 |
| 最近记录: |