Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.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# 带有select查询的空数据集_C#_.net_Dataset_Oledb - Fatal编程技术网

C# 带有select查询的空数据集

C# 带有select查询的空数据集,c#,.net,dataset,oledb,C#,.net,Dataset,Oledb,我正在使用OleDb查询Access数据库。下面的查询在Access中工作(如嵌套的内部联接和许多括号所示,Access实际上是从设计GUI构建查询的)。为难看的表/列名道歉 SELECT DISTINCT Table1.A, Table2.B, Table3.[C] FROM (Table4 INNER JOIN (Table2 INNER JOIN Table1 ON Table2.ID = Table1.Table2ID) ON Table4.ID = Table1.Table4ID) I

我正在使用OleDb查询Access数据库。下面的查询在Access中工作(如嵌套的内部联接和许多括号所示,Access实际上是从设计GUI构建查询的)。为难看的表/列名道歉

SELECT DISTINCT Table1.A, Table2.B, Table3.[C]
FROM (Table4 INNER JOIN (Table2 INNER JOIN Table1 ON Table2.ID = Table1.Table2ID) ON Table4.ID = Table1.Table4ID) INNER JOIN ((Table3 INNER JOIN Table5 ON Table3.ID = Table5.[Table3ID]) INNER JOIN Table6 ON Table3.ID = Table6.Table3ID) ON Table1.ID = Table6.Table1ID
WHERE (((Table1.D)=False) AND ((Table1.E)=True)))
它返回许多行。但是,以下代码会导致一个空数据集。由于代码的设置方式,可能会出现语法错误(包装器类会处理其中一些代码行,因此为了简单起见,我不得不对其进行分解)


以这种方式在数据库上执行的其他select查询返回数据,那么为什么返回的是空数据集呢?

您需要打开连接吗?对不起,这是我解开代码时的一个错误。我使用了VisualStudio调试器,是的,连接状态当前处于打开状态。我将编辑代码以反映这一点。检查是否引发任何异常(菜单“调试”,异常…,选择“CLR”-异常)2。执行语句时检查连接是否打开。3.在具有多个具有镜像数据库结构的服务器的环境中,检查您是否位于正确的服务器和数据库上。是否收到错误?某种未经处理的异常,甚至是在
catch
中捕获的异常?我会尝试将
WHERE((Table1.D)=False)和((Table1.E)=True))
更改为
WHERE((Table1.D=False)和(Table1.E=True))
// db initialized prior
OleDbConnection con = new OleDbConnection(db);
con.Open();
OleDbCommand cmd = new OleDbCommand(@"
    SELECT DISTINCT Table1.A, Table2.B, Table3.[C]
    FROM (Table4 INNER JOIN (Table2 INNER JOIN Table1 ON Table2.ID = Table1.Table2ID) ON Table4.ID = Table1.Table4ID) INNER JOIN ((Table3 INNER JOIN Table5 ON Table3.ID = Table5.[Table3ID]) INNER JOIN Table6 ON Table3.ID = Table6.Table3ID) ON Table1.ID = Table6.Table1ID
    WHERE (((Table1.D)=False) AND ((Table1.E)=True)))
");
cmd.Connection = con;
DataSet data = new DataSet();
OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);
adapter.Fill(data);