【SQLite】使用事务处理带参数的插入
发布时间:2020-12-12 19:33:40 所属栏目:百科 来源:网络整理
导读:using (SQLiteConnection conn = new SQLiteConnection(String.Format( " Data Source={0};Pooling=true " ,fileName.ToString()))) { using (SQLiteCommand cmd = new SQLiteCommand()) { conn.Open(); cmd.Connection = conn; Stopwatch warch = new Stopw
using (SQLiteConnection conn = new SQLiteConnection(String.Format("Data Source={0};Pooling=true",fileName.ToString()))) { using (SQLiteCommand cmd = new SQLiteCommand()) { conn.Open(); cmd.Connection = conn; Stopwatch warch = new Stopwatch(); warch.Start(); SQLiteTransaction trans = conn.BeginTransaction(); cmd.Transaction = trans; try { for (int i = 0; i < _dataTable.Rows.Count; i++) { cmd.CommandText = "insert into HistoryData (PointId,PointType,TempValue,HumiValue,TTime) values (@PointId,@PointType,@TempValue,@HumiValue,@TTime)"; cmd.Parameters.Add(new SQLiteParameter("@PointId",DbType.Int32)); cmd.Parameters.Add(new SQLiteParameter("@PointType",DbType.String,20)); cmd.Parameters.Add(new SQLiteParameter("@TempValue",DbType.Double)); cmd.Parameters.Add(new SQLiteParameter("@HumiValue",DbType.Double)); cmd.Parameters.Add(new SQLiteParameter("@TTime",DbType.DateTime)); cmd.Parameters[0].Value = _dataTable.Rows[i]["PointId"].ToString(); cmd.Parameters[1].Value = _dataTable.Rows[i]["PointType"].ToString(); cmd.Parameters[2].Value = _dataTable.Rows[i]["TempValue"].ToString(); cmd.Parameters[3].Value = _dataTable.Rows[i]["HumiValue"].ToString(); cmd.Parameters[4].Value = _dataTable.Rows[i]["TTime"]; cmd.ExecuteNonQuery(); } trans.Commit(); } catch (Exception) { trans.Rollback(); throw; } warch.Stop(); MessageBox.Show(string.Format("{0},{1}",_dataTable.Rows.Count,warch.Elapsed.ToString())); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |