程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了SQlite 连接在执行前自行关闭大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决sqlite 连接在执行前自行关闭?

开发过程中遇到sqlite 连接在执行前自行关闭的问题如何解决?下面主要结合日常开发的经验,给出你关于sqlite 连接在执行前自行关闭的解决方法建议,希望对你解决sqlite 连接在执行前自行关闭有所启发或帮助;

我遇到了一个奇怪的问题,我似乎无法找到答案...

我有一段代码,它使用事务和参数将数据插入到 SQLite 数据库中。它从传递的对象 List<T> 列表中获取值。一共有74个参数……我的代码是这样的

            dbConnection.open();

            
            using (sqlitetransaction transaction = dbConnection.begintransaction())
            {
                foreach (CardScryfall _card in _cards)
                {
                    sqliteCommand com = dbConnection.CreateCommand();
                    com.CommandText = sql;
                    com.Parameters.Add("@dbID",sqliteType.Integer); //Mandatory
                                                                     //Assign values to Parameters
                    com.Parameters[0].Value = GetNextDBID();
                    //Assign card propertIEs to parameters
                    com.Parameters.Add("@objectname",sqliteType.Text);
                    com.Parameters[com.Parameters.IndexOf("@objectname")].Value = _card.objectname;
                    
                    //Next 72 parameters are created the same way.
                    

                    //replace NulL with dbnull.Value
                    foreach (sqliteParameter par in com.Parameters)
                    {
                        if (par.Value == null)
                        {
                            par.Value = dbnull.Value;
                        }
                    }

                    //Execute query
                    
                    com.Prepare();
                    com.ExecuteNonquery();
                    transaction.Commit();
                    com.dispose();
                    
                }
            }
            dbConnection.Close();

现在...当我删除 using transaction 部分时,代码工作正常,但速度非常慢... 所以我补充说想把它包装成一个事务以提高性能

现在的问题是在添加参数中间的某个地方(每次我单步执行代码时都不同)dbconnection.State 从打开变为关闭所以当代码到达 com.Prepare() 以进行第一次插入和我收到连接已关闭的错误...我有 10k+ 条记录要插入

我尝试设置 dbConnection.DefaultTimeout = 0 但没有帮助...

你能帮忙吗???

谢谢

更新:@H_450_32@

发现了我的问题... 函数 GetNextDBID() 正在检索打开和关闭 DBconnection 的最后一个 recordID ......所以我改变了代码,现在它工作正常

解决方法

无需在循环中创建命令。您应该创建一次,然后只为参数分配新值。

同样,您不需要在循环的每次迭代中提交事务。最后做一次。

async dragAndDrop(dragElement: WebElement,dropElement: WebElement) {
  await browser.actions().mouseMove(dragElement).perform();
  await browser.actions().mouseDown(dragElement).perform();
  await browser.actions().mouseMove({ x: 10,y: 0 }).perform();
  await browser.actions().mouseMove(dropElement).perform();
  await browser.actions().mouseUp().perform();
}

大佬总结

以上是大佬教程为你收集整理的SQlite 连接在执行前自行关闭全部内容,希望文章能够帮你解决SQlite 连接在执行前自行关闭所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: