我发现有时候调用OleDbDataAdapter.Fill(DataTable dt)会得到一个空的table,可以给定的sql语句应该是有返回的
原因是通常是sql中包含多条语句,其中第一条语句是没有结果集的,而后面的语句才有结果集

比如执行下面的语句,a是表的名称,a表里有记录
SQL:
update a set b = 10
select * from a

C#:
     DataTable dt = new DataTable();
     ad.Fill(dt);

这个dt就不包含任何行

解决的方法是,把SQL语句改成

set nocount on
update a set b = 10
select * from a
set nocount off

或者

用DataSet取代DataTable