public void SaveToDB(DataTable dt) { /* todo:sqlite沒有提供批量插入的機制,須要經過事務處理 更新全部數據 * http://www.cnblogs.com/hbjohnsan/p/4169612.html * Eorr 數據庫加了鎖,執行不了本身的代碼。 */ string connStr = @"data source=E:\YQSQLite\YQSQLite\Data\YQ.db"; using (SQLiteConnection conn = new SQLiteConnection(connStr)) { conn.Open(); using (System.Data.SQLite.SQLiteTransaction trans = conn.BeginTransaction()) { using (System.Data.SQLite.SQLiteCommand cmd = new SQLiteCommand(conn)) { cmd.Transaction = trans; try { foreach (DataRow dr in dt.Rows) { cmd.CommandText = @"insert or ignore into RssItem() values ("+Int32.Parse(dr[0].ToString()) +",'" +dr[1].ToString()+"','"+dr[2].ToString()+"','" + dr[3].ToString() + "','" + DateTime.Parse(dr[4].ToString()) + "','" +dr[5].ToString()+"','"+dr[6].ToString()+"')"; cmd.ExecuteNonQuery(); } trans.Commit(); } catch (Exception ex) { MessageBox.Show(ex.Message); trans.Rollback(); } } } } }