填充写入datatable的速度问题(100分)

hb1122 2009-11-11 11:19:26
加精
程序原理
1、按行读取文件文本流
2、从流中获取用户名、帐号、信息
3、判断数据表中是否存在该信息,如存在,则忽略,如不存在,则写入数据库
4、至文件尾,结束

数据表中存在三个字段,user_name char(10), user_num char(10), user_information nvarchar(max)
使用的SQL SERVER,当用sqldatareader读取判断,sqlcommand查询写入数据时,每分钟,可成功读取35000行
当用sqldataadapter填充数据表至dataset.table("user"),然后从datatable中查找,不存在的记录写入datatable,至文件尾时,sqldataadapter.update至数据表时,每分钟成功读取5000行

请问,有让使用datatable操作时加速的方法吗?
万分感谢 !
...全文
1930 59 打赏 收藏 转发到动态 举报
写回复
用AI写文章
59 条回复
切换为时间正序
请发表友善的回复…
发表回复
liwei4026892 2010-09-21
  • 打赏
  • 举报
回复
学习中
a343536 2010-07-28
  • 打赏
  • 举报
回复
学习中。。。
xiaoyaophoto 2010-05-21
  • 打赏
  • 举报
回复
不清楚啊!我这边有个问题大家帮我解决一下啊!我的网站上播放图片的时候在暗的地方出现白点是怎么回事啊,大家帮我解决一下啊!
http://sheying.yahoopc.cn/zpinfo.asp?i=2259这个是网址大家看一下帮我解决啊!!谢谢了!!
我也尝试过更换图片格式,但是还是不行啊!大家帮我想想办法啊!很着急的
liaobc 2010-04-08
  • 打赏
  • 举报
回复
mark
decacrf 2010-03-03
  • 打赏
  • 举报
回复
fsfs mark...
a124819202 2010-01-22
  • 打赏
  • 举报
回复
路人很多···
hzxsasdfgh 2009-11-28
  • 打赏
  • 举报
回复
marks
.将 2009-11-25
  • 打赏
  • 举报
回复
路过此地
hb1122 2009-11-14
  • 打赏
  • 举报
回复
的确是索引的问题,LS的强人们,不好意思!
glibfox 2009-11-13
  • 打赏
  • 举报
回复
学习了
HawKHB 2009-11-13
  • 打赏
  • 举报
回复
mark~
风骑士之怒 2009-11-13
  • 打赏
  • 举报
回复
up
边城的刀声 2009-11-13
  • 打赏
  • 举报
回复
给表加索引,直接存储过程
解释多余的 2009-11-13
  • 打赏
  • 举报
回复
不怎么会 友情帮顶
wanchor 2009-11-13
  • 打赏
  • 举报
回复
提高配置,如扩充内存,
jhf_2002 2009-11-12
  • 打赏
  • 举报
回复
在多说一句:对与这种规模比较大的处理数据的过程,要思考以集合的方式处理数据,而不要以程序的思路一条条的过滤数据处理,这样才能提高程序性能!
jhf_2002 2009-11-12
  • 打赏
  • 举报
回复
针对这样的问题:
1.先在数据库中建一个UserTemp表(用于在数据库中暂存数据),结构于你的源表相同;
2.构造内存表DataTable,将文本中的数据先插入到DataTable中;
3.使用SqlBulkCopy类的方法将构造好的DataTable中的数据先导入到UserTemp表中;
4.使用Delete语句删除UserTemp中存在源表的记录,
如delete from UserTemp where existed (select * from TUser where Name = UserTemp.Name and No = UserTemp.No and Info = UserTemp.Info);
5.使用Insert into语句将UserTemp表中剩下的记录导入到源表中:
Insert into TUser select * from UserTemp;
6.Drop掉UserTemp表;
7.OK了!
compassion 2009-11-12
  • 打赏
  • 举报
回复
我仅说明可以不使用HashTable.DataTable本身就有这个功能
DataTable dt = new DataTable("User");
dt.Columns.Add("UserName", typeof(string));
dt.PrimaryKey = new DataColumn[] {dt.Columns["UserName"]};
... 数据填充到dt中...
DataRow dr = dt.Rows.Find(userName);
if (dr == null)
{
写入数据库
}
hb1122 2009-11-12
  • 打赏
  • 举报
回复
呃,居然推荐了!
努力学习LS大大们的方法!
烈火蜓蜻 2009-11-12
  • 打赏
  • 举报
回复
希望对你有帮助,别忘记了给我加分,哈哈
加载更多回复(36)

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧