仅将新条目从一个数据库表复制到另一个数据库表访问,C#

时间:2016-02-25 02:27:49

标签: c# sql ms-access

我正在尝试创建一个应用程序,其中包含用户为自己隐藏的消息列表,而不会影响其他人。 我认为最简单的方法是拥有一个包含所有消息的主数据库,以及带有额外列的用户副本,例如hidden(bool) 我几乎可以使这个工作,但无法找到一种方法来保存已存在的其他布尔值,同时不复制已存在的emtries。

基本上,如何仅复制另一个中不存在的数据库表的条目。

我尝试使用左连接(SELECT messages.Message,user.Hidden FROM messages LEFT JOIN user ON messages.Message = user.Message)但我不确定这是否有效,因为它给了我一个错误(语法错误)在FROM子句中)

一个例子:

消息DB:

消息

M1
M2
m3

最初用户数据库为空,首次运行时应创建:

消息....隐藏

M1 .................˚F

平方米.................˚F

立方米.................˚F

假设用户隐藏了所有消息,然后将消息DB更改为:

消息

M1

立方米

M4

M5

用户数据库更改为

消息....隐藏

M1 ................Ť

立方米................Ť

M4 ................˚F

M5 ................˚F

我正在使用Access和C#,第一次对数据库做任何事情,对不起,如果这是一个非常愚蠢的问题,找不到其他人问同样的事情。另外,如果我以完全错误的方式解决这个问题,我不会想到更好的方法,但在实际的应用程序中,两个数据库中都会有更多的列。

1 个答案:

答案 0 :(得分:0)

可能不是最好的方法,但至少我让它工作了。左连接确实有效,我认为之前的问题是用户是一个保留字

"SELECT messages.message, [User].hidden INTO temp FROM messages LEFT JOIN [User] ON messages.message = [User].message;"

"DROP table [User]"

"SELECT * INTO [User] FROM temp;"

当然,如果有人知道一个更好的实现,特别是那个避免需要临时表的实现,我希望看到它。