Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用C语言比较两个本地数据库表#_C#_.net_Sql_Database_Compare - Fatal编程技术网

C# 用C语言比较两个本地数据库表#

C# 用C语言比较两个本地数据库表#,c#,.net,sql,database,compare,C#,.net,Sql,Database,Compare,我是C#的新手 我在VS2010(.sdf文件)中创建了一个本地数据库。我试图在数据库列之间创建一些比较。我使用下面的connectionstring成功连接到数据库: string connectionString = "Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;data source=c:\\users\\user\\documents\\visual studio 2010\\Projects\\myapp\\myapp\\mydb.sdf";

我是C#的新手

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

 string connectionString = "Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;data source=c:\\users\\user\\documents\\visual studio 2010\\Projects\\myapp\\myapp\\mydb.sdf";
我的数据库有两个表。昵称和名字。 昵称有一个名为“别名”的字段,该字段仅列出存储的昵称。 Names有一个名为“Text”的字段,它只列出存储的名称

例:

别名

名字

假设这些是我数据库中的值。我想要的是找到那些不在名字表中的昵称,在我的例子中是->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";
我该怎么办

编辑 这就是我用来阅读结果的方法。

试试:

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
我在@your代码中的尝试(忽略我使用SQL语法的事实,因为这正是我所使用的):


应该做你想做的事。

其他人给了你正确的查询,但是你问的是C,你的意思是你想知道如何从C运行查询吗?事实上,正确的查询对于我来说不起作用。我不明白出了什么问题。值得注意的是,您的“SQL代码”末尾有分号,这对我来说意味着您在后面的代码中使用了分号。我强烈建议粘贴用于检索数据的其余代码,因为我猜这是您的问题。请查看我在文章底部的编辑。你的代码运行得很好。很高兴我能帮你,如果你需要更多的帮助,或者如果你在相关主题上发布了类似的问题,请回复我的答案,我会看一看。祝您编程顺利。然后您需要提供更多信息,因为这正是您需要执行的查询。连接字符串在代码方面对我们来说是相当无用的,我们需要看看您是如何从代码中实际运行命令的。代码看起来不错,您刚刚对每个表进行了选择以检查是否应该有结果。可能Nickmanes是空的,或者名称包含昵称中的所有名称。
 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
Select [Alias] from [nicknames] where [Alias] not in (select [text] from [names])