我发现有时候调用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