【SQLite】使用事务处理带参数的插入

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()));
                }
            }

使用事务处理插入sqlite数据库中的语句

时间: 2024-11-25 14:22:32

【SQLite】使用事务处理带参数的插入的相关文章

【转】C# 对sqlite基本操作,带批量插入

原文地址:https://download.csdn.net/download/mic_gary/10154869 public class SQLiteHelper { //数据库连接字符串 public static string connectionString; public SQLiteHelper() { } #region 公用方法 public static int GetMaxID(string FieldName, string TableName) { string str

SQL Server之 (四) ADO增删查改 登录demo 带参数的sql语句 插入自动返回行号

SQL Server之 (四) ADO增删查改  登录demo  带参数的sql语句  插入自动返回行号 自己学习笔记,转载请注明出处,谢谢!---酸菜 1.什么是ADO.NET ADO.NET是一组类库,这组类库可以让我们通过程序的方式访问数据库,并以各种方式操作存储在其中的数据; ADO.NET是基于.NET FrameWork,与.NET FrameWork类库的其余部分是高度集成的 2.连接数据库的步骤 ①创建连接字符串 Data Source=XXX-PC; Initial Catal

C语言中带参数的宏

带参数的宏定义有如下的格式: [#define 指令----带参数的宏] #define 标识符(x1,x2,……,xn) 其中  x1,x2,……xn是标志符(宏的参数) 注意:在宏的名字和括号之间必修没有空格. 如果有空格,预处理会认为是在定义一个简单的宏,其中(x1,x2,……,xn)是替换列表的一部分 当预处理器遇到一个带参数的宏,会将定义存储起来以便以后使用.在后面的程序中,如果任何地方出现了标识符(y1,y2……,yn)格式的宏调用(其中y1,y2, ……yn是一些列标记),预处理器

微信开发之——Php批量生成带参数的二维码

带参数的二维码对于渠道营销推广来说是很有用的,可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送,可喜的是微信开通了这个接口,那下面就来研究一下吧. 具体接口说明请参见,微信公众平台开发者文档(http://mp.weixin.qq.com/wiki/18/28fc21e7ed87bec960651f0ce873ef8a.html),我这里就直接上代码. 演示图: 由于带参数二维码生成是有限的,所有我是按编号生成的,下次生成的时候直接累加. 另外带设置有备注,方便以后统计.

微信服务器与项目服务器的交互(关注功能、微信扫描带参数二维码)

<?php /** * wechat php test */ //define your token define("TOKEN", "txtj"); $wechatObj = new wechatCallbackapiTest(); if (isset($_GET['echostr'])) { $wechatObj->valid(); }else{ $wechatObj->responseMsg(); } class wechatCallback

微信公众平台生成带参数二维码

<?php // +---------------------------------------------------------------------- // | 获取微信公众带参数二维码 // | Author: wzb [email protected] // +---------------------------------------------------------------------- namespace Mob\Controller; use Think\Contr

带参数的方法

带参数的方法 1.语法: <访问修饰符>放回值类型<方法名><(形式方法列表)>{ //方法的主体     } 2.调用带参方法 语法:对象名.方法名(参数1,参数2.....参数N)

微信二维码带参数的二维码(转)

官方文档地址:https://mp.weixin.qq.com/wiki/18/28fc21e7ed87bec960651f0ce873ef8a.html 原文地址:http://jingyan.baidu.com/article/fdbd4277cfd0c6b89f3f485f.html 注意事项 我知道你们是没有心情看注意事项的,但是很重要,所以我先摆上来. 用户扫描带参数的二维码,可能推送以下两种事件: 1.如果用户还未关注公众号,则用户可以关注公众号,关注后微信会将带场景值关注事件推送给

25.按要求编写一个Java应用程序: (1)编写一个矩形类Rect,包含: 两个属性:矩形的宽width;矩形的高height。 两个构造方法: 1.一个带有两个参数的构造方法,用于将width和height属性初化; 2.一个不带参数的构造方法,将矩形初始化为宽和高都为10。 两个方法: 求矩形面积的方法area() 求矩形周长的方法perimeter() (2)通过继承Rect类编写一个具有

package zhongqiuzuoye; public class Rect { public double width; public double height; Rect(double width,double height) //带有两个参数的构造方法,用于将width和height属性初化; { this.width=width; this.height=height; } Rect() //不带参数的构造方法,将矩形初始化为宽和高都为10. { width=10; height=