数据库提取操作问题

麦田追风 麦田追风 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
小弟学PDA开发,现在要复制数据表,我的数据表中有50多万调记录,要将以数据库表中间符合某条件的提取出来放到另一数据库的表中。我写了段代码,这代码要等半天才复制完。
请问高人怎么样可以让数据处理快一点啊~~~~?
下面是我写的代码:

public static void CopyTable(SqlCeConnection srcConnection,SqlCeConnection destConnection,
string queryString,string destTableName)
{
SqlCeCommand srcCommand = srcConnection.CreateCommand();
srcCommand.CommandText = queryString;//这参数是查询语句(select * from 数据源表名 where 条件)

SqlCeCommand destCommand = destConnection.CreateCommand();
destCommand.CommandText = @"Delete from " + destTableName;
destCommand.ExecuteNonQuery();

destCommand.CommandType = CommandType.TableDirect; //基于表的访问,性能更好
destCommand.CommandText = destTableName;//这是目的数据库表名
try
{
SqlCeDataReader srcReader = srcCommand.ExecuteReader();

SqlCeResultSet resultSet = destCommand.ExecuteResultSet(
ResultSetOptions.Sensitive | //检测对数据源所做的更改
ResultSetOptions.Scrollable | //可以向前或向后滚动
ResultSetOptions.Updatable); //允许更新数据

object[] values;
SqlCeUpdatableRecord record;
while (srcReader.Read())
{
// 从源数据库表读取记录
values = new object[srcReader.FieldCount];
srcReader.GetValues(values);

// 把记录写入到目标数据库表
record = resultSet.CreateRecord();
record.SetValues(values);
resultSet.Insert(record);
}

srcReader.Close();
resultSet.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
...全文

相关推荐

评论 8
收藏 已收藏
分享
返回顶部
麦田追风
数据库开发 8,027 成员 1,363 内容