1.在使用DataTable.Select()方法时,对其中的条件使用,我一直都没用到以时间为条件的.昨天,我要判断在select方法中判断日期是否相等,开始我是这样写的:DataTable.Select(" BeginDate="+Convert.DateTime(dt1.Rows[0]["StartDate"]+"");字段BeginDate是日期型,字段StartDate也是日期,应该相等吧.可程序调试到这时,总是出错.后来,在网上搜索了下,原来,使用日期为条件时,要在字段前后分别加上#这个符号.先前的DataTable.Select(" BeginDate="+Convert.DateTime(dt1.Rows[0]["StartDate"]+"");应改为:DataTable.Select("BeginDate="#+Convert.DateTime(dt1.Rows[0]["StartDate"]+"#");
2.在对DataTable新增一行数据时,使用import方法犯的错.以前总觉得DataTable 的 Rows 集合的 Add 方法 与DataTable的ImportRows方法可以互换,没什么不同的。直到今天,我在使用DataTable的NewRow方法时,使用了DataTale的ImportRows方法,发现数据没有加进来。于是,我就改用了DataTable.Rows.Add方法,这时,数据加入进来了。于是,我对DataTable.Rows.Add和DataTable.ImportRows产生了疑惑。它们有什么不同呢?终于,在MSDN上找到这样一句话:当调用 NewRow 方法时,新创建的行实际上将从 DataTable 分离出来。要附加它,随后必须将它传递到 DataTable 的 Rows 集合的 Add 方法。所以,当使用NewRow时,只能使用DataTable.Rows.Add方法,不能使用ImportRows方法。数据从 DataTable 导入到另一个 DataTable 中时,且两个DataTable的数据结构相同,则用ImportRows方法好些。
总结:1.使用DataTable的select方法,条件为日期时,要加#.
2.使用DataTable的NewRow方法后,新加一行数据,只能使用DataTable.Rows.Add方法.