这两天接到一个任务,大概目标是要将现有的客户提供的数据(Access数据库)全部转存到我们本地的mysql中,然后后期写一个定期检查原表是否更新,如果更新,则更新本地数据库。
我一开始写了一个小的代码,是利用数组的方式,先把Aceess某一个目标表中的每一列都用list[]数组读出来,又N个列就newN个数组来存,然后用for循环,把数组里每一列的数据写入mysql中对应的表中的列,思路是这样,效率不高,但是能实现,有一个目标表大概只有5000多条数据,我用这个代码,大概10秒钟左右完成所有的读和写入操作。
具体代码:
string connstr = ConfigurationManager.AppSettings["connectionstring"];
OleDbConnection conn = new OleDbConnection(connstr);
conn.Open();
Console.WriteLine("打开数据库成功");
string sql = "select * from lwmain";
OleDbCommand cmd = new OleDbCommand(sql, conn);
OleDbDataReader reader = cmd.ExecuteReader();
ArrayList listid = new ArrayList();
ArrayList listnumberId = new ArrayList();
ArrayList listpers