gpt4 book ai didi

c# - 使用C#比较本地数据库的两个表

转载 作者:太空狗 更新时间:2023-10-29 21:41:11 27 4
gpt4 key购买 nike

我是 C# 的新手。

我在 VS2010 中创建了一个本地数据库(.sdf 文件)。我正在尝试在数据库列之间创建一些比较。我使用下面的连接字符串成功连接到数据库:

 string connectionString = "Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;data source=c:\\users\\user\\documents\\visual studio 2010\\Projects\\myapp\\myapp\\mydb.sdf";

我的数据库有两个表。昵称和名字。Nicknames 有一个名为“Alias”的字段,它简单地列出了存储的昵称。名称有一个名为“文本”的字段,它仅列出存储的名称。

例如:

别名

Masher
Jones
Jaime
John
Joker

名字

John
Adam
Matt
Jones

假设这些是我数据库中的值。我想要的是找到不在名称表中的昵称,在我的示例中是 -> Masher、Jaime 和 Joker。

我该怎么做?我正在使用 C# 和 VS2010。

这是我在 SQL 代码方面的尝试:

 "SELECT Alias FROM nicknames WHERE (NOT (Alias IN(SELECT Text FROM Names))) ";
"SELECT Alias FROM nicknames EXCEPT SELECT Text FROM Names";
"SELECT Alias FROM nicknames t LEFT JOIN Names m ON m.Text = t.Alias WHERE m.Text IS NULL";
"SELECT Alias FROM nicknames UNION SELECT Text FROM Names";

我该怎么办?

编辑

 OleDbConnection conn = new OleDbConnection(connectionString);
conn.Open();
string sql = "MYQUERYFROMTHEABOVEEXAMPLE";
OleDbCommand cmd = new OleDbCommand(sql, conn);
OleDbDataReader reader;
reader = cmd.ExecuteReader();
string result = "";
while (reader.Read())
{
result += reader.GetString(0) + "\n";
}

这是我用来读取结果的。

最佳答案

尝试:

SELECT Alias FROM nicknames WHERE Alias not in (SELECT Text FROM Names)

编辑:试试这个:

select a.Alias
from nicknames a left outer join Names n on a.alias = n.text
where n.text IS NULL

我尝试@你的代码(忽略我使用 SQL 语法的事实,因为那是我使用的语法):

enter image description here

关于c# - 使用C#比较本地数据库的两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7971688/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com