开启事务,事务后台执行操作,并在执行完毕后提示

        string ConnString = @"Data Source=" + @"D:\SQLLITE\SQLiteStudio\集大成.db;Version=3";
        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("即将后台更新对方科目,请勿在更新结束前关闭本软件");
            DataSet ds = new DataSet();
            DataTable dt = new DataTable();
            System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch();
            watch.Start();//开始计时
            using (System.Data.SQLite.SQLiteConnection conntion = new System.Data.SQLite.SQLiteConnection(ConnString))
            {                
                conntion.Open();
                //将数据库数据加载至datable并添加年、月、日、凭账号的辅助列
                string Sql = "SELECT xsz.xz_gsmc as '公司名称',xsz.xz_nd as '年度',xsz.xz_y as '月',xsz.xz_r as '日',xsz.xz_pzh as '凭证号',group_concat(DISTINCT xsz.xz_kmmc) as '对方科目' FROM xsz GROUP BY xsz.xz_gsmc || xsz.xz_nd || xsz.xz_y || xsz.xz_r || xsz.xz_pzh";
                SQLiteDataAdapter da = new SQLiteDataAdapter(Sql, conntion);
                da.Fill(dt);
                //更新数据库表
				//新建线程
                Thread thread = new Thread(new ThreadStart(() =>
                {
                    using (System.Data.SQLite.SQLiteConnection conntion1 = new System.Data.SQLite.SQLiteConnection(ConnString))
                    {
                        conntion1.Open();
                        DataRow dr5 = null;
                        SQLiteTransaction ts = conntion1.BeginTransaction();
                        SQLiteCommand cmd = new SQLiteCommand();
                        cmd.Connection = conntion1;
                        cmd.Transaction = ts;
                        int a = dt.Rows.Count;
                        try
                        {
                            for (int i = 0; i < dt.Rows.Count; i++)//dt.Rows.Count; i++)
                            {
                                dr5 = dt.Rows[i];
                                cmd.CommandText = InsertToSql5(dr5);
                                cmd.Prepare();
                                //cmd.ExecuteNonQuery();
                                cmd.ExecuteNonQueryAsync();//异步执行                    
                            }
                            ts.Commit();//提交数据库事务
                            watch.Stop();//停止计时
                            MessageBox.Show("对方科目更新成功,共用时:" + (watch.ElapsedMilliseconds) / 1000 + "秒");
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.Message);
                        }
                    }
                }
            ));
                thread.Start();
            }            
            dataGridView1.DataSource = dt;
        }

为部分耗时较长的操作新建单独进程,实现后台运行,并在运行结束后提示是否成功运行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
为了在后台设置开启后开始执行自动点赞任务,你可以按照以下步骤进行: 1. 在插件的后台管理界面中,创建一个开关按钮或复选框,用于用户选择是否启用自动点赞功能。例如,可以使用 HTML 表单元素来创建一个复选框: ```html <input type="checkbox" name="enable_auto_like" value="1">启用自动点赞功能 ``` 2. 在插件的后台管理界面中,创建一个设置保存按钮,用于用户保存设置并开始执行自动点赞任务。例如,可以使用 HTML 表单元素来创建一个提交按钮: ```html <input type="submit" name="save_settings" value="保存设置并开始执行"> ``` 3. 在插件的入口文件中,处理用户保存设置的逻辑。例如,可以在插件的入口文件中添加以下代码: ```php if ($_POST['save_settings']) { // 获取用户选择的是否启用自动点赞功能 $enable_auto_like = $_POST['enable_auto_like']; // 更新插件的设置数据到数据库中 // ... // 如果用户选择了启用自动点赞功能,则开始执行自动点赞任务 if ($enable_auto_like) { // 执行自动点赞任务的代码 // ... } } ``` 4. 在自动点赞任务的代码块中,实现之前提到的更新数据库、模拟点赞等逻辑。可以参考之前给出的代码示例。 请注意,以上代码仅为示例,具体实现细节需要根据你的实际情况和插件开发的要求进行调整。 希望以上信息对你有帮助。如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值