ACCESS批量修改提交

先放几个链接,要细致研究的时候再看:

Inside ADO.NET Batch Update
http://msdn.microsoft.com/en-us/library/ms810297.aspx

使用 DataAdapter 更新数据源
http://msdn.microsoft.com/zh-cn/library/33y2221y(v=VS.80).aspx#Y1161

Use DataTable to update table in Database
http://www.java2s.com/Code/CSharp/Database-ADO.net/UseDataTabletoupdatetableinDatabase.htm

C# 数据库批量更新问题
http://zhidao.baidu.com/question/126951488.html

做了一个小工具,用来清洗ACCESS的数据,原来的方法是取全表,然后遍历每一行,再两个正则表达式匹配,再UPDATE该行,效率比较低,一千五百多条的数据,就要花费一分钟。

考虑用批量UPDATE改进,理论上应该能够减少IO,大大提高效率。(当然结果也证明了,效率大幅提高,原有的千多条数据,不出三秒就完成了。^_^)

粘上代码,以备以后查阅:

OleDbConnection DataConnection = new OleDbConnection(DBFile);
string selectSQL = "SELECT ID, 原出版社, 原书名, 出版社, 版次, 出版日期, 书名, 装帧 FROM Content";
DataConnection.Open();
OleDbDataAdapter da = new OleDbDataAdapter(selectSQL,  DataConnection );
DataTable rawData = new DataTable ();
da.Fill(rawData);
DataConnection.Close();

Regex regPress = new Regex(@"");

for (i = 0; i < rawData.Rows.Count; i++)
{
	// if match 1
            rawData.Rows[i]["出版社"] = ;
}

OleDbCommandBuilder odbCB = new OleDbCommandBuilder(da);    // 这句是关键
da.Update(rawData);
posted @ 2011-03-07 14:27  miuq  阅读(1250)  评论(2编辑  收藏  举报