目标是从所有表中选择所有表并将其存储在数据集中。我有一个MS访问数据库,似乎有独立(非相关)表。我在c#中的选择查询目前如下所示:
" SELECT * FROM tableA" +" SELECT * FROM tableB" + ...等等但我在FROM条款"中不断出现错误#34;消息。
如何在不使用JOIN的情况下从数据库中的所有表中进行选择?我可以创建一个独立的SELECT语句并存储在每个表的独立数据集中,但必须有更好的方法吗?
我已经看到这是通过存储过程实现的,因为该过程可以只是
Create Procedure myProc
as
Begin
SELECT * FROM tableA
SELECT * FROM tableB
SELECT * FROM tableC
END
如何使用C#
中的查询字符串实现此目的提前致谢。
答案 0 :(得分:1)
试试这个:
How to fill Dataset with multiple tables?
您要查看的代码是:
SqlDataAdapter adapter = new SqlDataAdapter(
"SELECT * FROM Customers; SELECT * FROM Orders", connection);
adapter.TableMappings.Add("Table", "Customer");
adapter.TableMappings.Add("Table1", "Order");
adapter.Fill(ds);
答案 1 :(得分:-1)
你可以这样做,但这可能不是理想的解决方案。在第一个选择中使用最大列数的表并用null替换其余的列,同时将所有列转换为相同的数据类型
select 1,'2016-01-05','TestA','1500.00',2500,150
union all
select 1,'2016-01-05','TestA','1200.00',null,null
union all
select 1,'2016-01-05','TestA','1300.00',null,null