因为是第一次用C#做汇入工具,有很多东西都没有注意到,导致花费了很长的时间去修改代码,因此,在这里我总结了我的一点经验。
第一点:能做到单个表汇入就单个表汇入,汇完就把这个表的资源彻底释放,要不然会占用内存,超过操作系统的内存就会报内存溢出,这里我使用DataTable来存数据的,网上说释放DataTable让它先调用Dispose方法在等于null就释放了,但我查看内存,还占用着,因此我在用GC.Collect()就彻底释放掉了,在这里要注意一点,例如:DataTable dt=new DataTable();在为DataTable添加数据,在调用上面的释放资源操作,然后你再用这个dt去添加数据之后,dt用完之后,在去用GC.Collect()就释放不掉了,这个问题,我没有找到解决方法。
第二点:如果你是要用两个表的数据汇入到目标数据库中的一个表中,那么应当先把那两个表处理成一个表,因为我做的项目源数据库是dbf的,我采用odbc查询数据,两个表就用左联查询需要的字段,这样只要循环合成之后的表就可以了
第三点:系统有简体和繁体之分,汇入的数据也是一样的,如果你的源数据库中的数据是简体,而你运行汇入工具的系统是繁体,那么汇入的数据就会乱码,有两种解决方法:1.使用apploc.msi工具,2.把你运行汇入工具的系统的区域和语言选项改成对应的,如繁体就改成中文(台湾)