C# SQLite数据库参数化批量插入数据库,启用事务

using (SQLiteConnection con = new SQLiteConnection(conna))
{
    con.Open();
    DbTransaction trans = con.BeginTransaction();//开始事务
    SQLiteCommand cmd = new SQLiteCommand(con);
    try
    {
        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
        {
            cmd.CommandText = "insert into article(id,tid,province_id,grade,title,CDT,article) values(@id,@tid,@province_id,@grade,@title,@CDT,@article)";


            cmd.Parameters.Add(new SQLiteParameter("@id", DbType.Int32, 4));
            cmd.Parameters.Add(new SQLiteParameter("@tid", DbType.Int32, 4));
            cmd.Parameters.Add(new SQLiteParameter("@province_id", DbType.Int32, 4));
            cmd.Parameters.Add(new SQLiteParameter("@grade", DbType.Int32, 4));
            cmd.Parameters.Add(new SQLiteParameter("@title", DbType.String, 400));
            cmd.Parameters.Add(new SQLiteParameter("@CDT", DbType.DateTime));
            cmd.Parameters.Add(new SQLiteParameter("@article", DbType.String));

            cmd.Parameters[0].Value = Convert.ToInt32(ds.Tables[0].Rows[i]["id"]);
            cmd.Parameters[1].Value = Convert.ToInt32(ds.Tables[0].Rows[i]["tid"]);
            cmd.Parameters[2].Value = Convert.ToInt32(ds.Tables[0].Rows[i]["province_id"]);
            cmd.Parameters[3].Value = Convert.ToInt32(ds.Tables[0].Rows[i]["grade"]);
            cmd.Parameters[4].Value = ds.Tables[0].Rows[i]["title"].ToString().Trim();
            cmd.Parameters[5].Value = Convert.ToDateTime(ds.Tables[0].Rows[i]["CDT"]);
            cmd.Parameters[6].Value = ds.Tables[0].Rows[i]["article"].ToString().Trim();

            cmd.ExecuteNonQuery();

            SetProgressBar(i + 1, ds.Tables[0].Rows.Count);//进度条
            SetText("正在解压数据,请稍候...完成:" + (i + 1) + "/" + ds.Tables[0].Rows.Count);
        }
        trans.Commit();//提交事务
    }
    catch (Exception ex)
    {
        trans.Rollback();
        throw ex;
    }
}



若直接带参数,格式如下:

var insertSQL = new SQLiteCommand("INSERT INTO Brugere (navn, brugernavn, password, pc_id, noter, licens_id)" +
" VALUES (@uNavnParam, @bNavnParam, @passwdParam, @pc_idParam, @noterParam, @licens_idParam)", conn);
insertSQL.Parameters.AddWithValue("@uNavnParam", uNavn);
insertSQL.Parameters.AddWithValue("@bNavnParam", bNavn);
insertSQL.Parameters.AddWithValue("@passwdParam", passwd);
insertSQL.Parameters.AddWithValue("@pc_idParam", pc_id);
insertSQL.Parameters.AddWithValue("@noterParam", noter);
insertSQL.Parameters.AddWithValue("@licens_idParam", licens_id);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值