C#:在没有任何主键的情况下更新数据集
当表没有主键时,在 C# 中是否可以使用 OleDbAdapter 并对其数据集使用其 Update 方法,我该如何执行此操作?
Is it possible in C# to use an OleDbAdapter and use its Update method for a dataset when a table has no primary key and how can I do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这是一个 VB 示例,它可能会给您一个大概的了解。
Here's an example in VB, which might give you a general idea.
您始终可以使用
myTable.Select("myColumn Like 'unique value'");
查找行You can always find a row using
myTable.Select("myColumn Like 'unique value'");
可以添加主键吗?
如果没有某种唯一 ID(应该是 PK),则无法知道要更新哪一行。
Can you add a primary key?
Without some kind of unique ID (which should be the PK) then there is no way of knowing what row to update.
我在使用第三方数据库时也遇到了同样的问题。他们的数据库中没有主键,但有唯一的字段组合。
首先,创建一个数据表,并使用唯一条件将查询结果填充到其中。
其次,将 ds 替换为按列更新的数据。
然后,您就可以更新了。
这对我有用。
仅当您确定存在一对一的查询数据时才执行此操作。如果没有,您可能需要添加一些“if”检查
I got the same issue when I used a third-party database. They don't have primary keys in their database, but they do have a combination of fields that are unique.
First, create a datatable, and fill it with the result of the query using the unique condition.
Second, replace ds with your updated data by column.
Then, you can update.
This works for me.
Only do it when you are sure there is one at only one query data. If not, you may want to add some "if" checking