INSERT INTO XXX SELECT ... from YYY
解决方案 »
- c#能否从注册表中准确得出例如迅雷等的安装路径?
- c#使用spl语句查询数据库内容时出现了FROM子句语法错误,请各位大侠看看怎么改正啊!
- [求租]ASP.NET(C#)中如何实现用代码 编程实现往PANEL控件中添加html代码
- 如何判断AccessDataSource的查询结果是否为空啊?
- c# 高分提问 谁给我一个存储过程返回多个记录集的处理过程
- DevExpress.XtraGrid如何清除数据源呀?
- C#事件问题
- 请教用C#生成PDF文件(将文件转换成PDF文件)
- 用C#写了一个程序,想实现在安装时要求输入注册码,求实现的具体方法.谢谢了
- 使用listener出错:以一种访问权限不允许的方式做了一个访问套接字的尝试。求救!
- 很郁闷呀。textedit获取值
- 求一个算法,生成5位序号
数据已到客户端Dataset对象里,现在我的做法是从Dataset里取出,再插入到SQLite的表里
我现在是
for(int i=0; i< ds.Tables[0].Rows.Count;i++)
{
DataRow dr =ds.Tables[0].Rows[i];
/////读取字段
////构造INSERT SQL语句,然后
SQLiteCommand cmd = new System.Data.SQLite.SQLiteCommand();
cmd.CommandText = sb.ToString();
cmd.Connection = conn;
cmd.ExecuteNonQuery();
}
///
现在这样没问题,就是速度 有点慢,一分钟 插入1500条左右,您这方法 能具体点么?
我现在是
for(int i=0; i< ds.Tables[0].Rows.Count;i++)
{
DataRow dr =ds.Tables[0].Rows[i];
/////读取字段
////构造INSERT SQL语句,然后
SQLiteCommand cmd = new System.Data.SQLite.SQLiteCommand();
cmd.CommandText = sb.ToString();
cmd.Connection = conn;
cmd.ExecuteNonQuery();
}
///
现在这样没问题,就是速度 有点慢,一分钟 插入1500条左右,您这方法 能具体点么?
暂时没有代码给你抄。贴出无关的代码也不是你要的。只是告诉你问题在哪里:你不应该不断地创建DbConnection。你应该在循环外仅创建一个DbConnection,然后再创建一个 DbTrsansation,然后循环里的代码执行ExecuteNonQuery。最后在循环之后,执行一次 DbTransaction的 Commit 指令。这对于Sqlite这类在行加锁机制上比较低级的程序尤其重要。不要每一条记录的处理都创建一个独立的数据库事务(transaction),而应该仅创建一个,或者是仅创建很少的(例如每当处理1000条记录才创建一个)。