判断DataTable为空
请几天项目中增加了一个功能,就是通过windows服务往数据库里填充数据。
有一表A,表A里有字段“日期”,如果表A中有日期为“XXXX”的数据,则windows服务不在往改表中添加数据。我是这样写的:
public bool HasData(datetime dt)
{
string sql="select *from A WHERE date="+ dt +";
datatable table=sqlHelper.Exculude(sql); 此方法为执行sql语句并返回一个datatable
if(table==null) 判断是否为空表
{
return false;
}
return true;
}
哎,还是功力不够呀,本以为没问题了,也没测试,没想到过了几天了,A表中一直没数据。跟踪后,才发现, if(table==null)出了问题。
因为,改table是从数据库中取出的,表结构已经有了。要判断它是否为空,要用table.rows.count>0。(不知道还有没其他方法)
而table==null 只是判断有没有实例化,并不能作为是否为空表的依据。所以,该例中,一直返回 true。