Luc*_*vin 6 .net c# sql database compare
我是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";
Run Code Online (Sandbox Code Playgroud)
我的数据库有两个表.昵称和名字.Nicknames有一个名为"Alias"的字段,它只列出存储的昵称.名称有一个名为"Text"的字段,它只列出存储的名称.
例如:
别号
Masher
Jones
Jaime
John
Joker
Run Code Online (Sandbox Code Playgroud)
名称
John
Adam
Matt
Jones
Run Code Online (Sandbox Code Playgroud)
假设这些是我数据库中的值.我想要的是找到名字中没有的昵称 - 在我的例子中是 - > 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";
Run Code Online (Sandbox Code Playgroud)
我该怎么办?
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";
}
Run Code Online (Sandbox Code Playgroud)
这是我用来阅读结果的内容.
尝试:
SELECT Alias FROM nicknames WHERE Alias not in (SELECT Text FROM Names)
Run Code Online (Sandbox Code Playgroud)
编辑:试试这个:
select a.Alias
from nicknames a left outer join Names n on a.alias = n.text
where n.text IS NULL
Run Code Online (Sandbox Code Playgroud)
我的尝试@你的代码(忽略我使用 SQL 语法的事实,因为这就是我使用的):

| 归档时间: |
|
| 查看次数: |
2669 次 |
| 最近记录: |