社区
C#
帖子详情
散分讨论:C#实现文本到数据库的导入问题
Lengjian
2007-06-29 10:48:49
文本文档:
格式固定,列之间以空格隔开
数据库:
表已经存在,列已经存在,列和文本文档的列完全对应
要求:
实现从文本到表的数据自动导入,大家一般如何处理?
(逐行逐列读取导入貌似很不合理,效率也很低)
...全文
756
29
打赏
收藏
散分讨论:C#实现文本到数据库的导入问题
文本文档: 格式固定,列之间以空格隔开 数据库: 表已经存在,列已经存在,列和文本文档的列完全对应 要求: 实现从文本到表的数据自动导入,大家一般如何处理? (逐行逐列读取导入貌似很不合理,效率也很低)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
29 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tepc2000
2007-07-02
打赏
举报
回复
up
Lengjian
2007-06-29
打赏
举报
回复
呵呵,原来我是这么写的:
枚举指定文件夹里面的文件名;
循环读取每个文件;
循环读取文件里面的行;
按照空格split列;
列写入数据集;
数据集写到数据库表;
个人觉得资源消耗挺多的(每个文档数百万条数据),而且效率也不尽如人意;
刚才楼上的朋友提出了存储过程,我写存储过程一般就在数据库中直接写,但是这样就不好形成一个通用的可在多种环境下重复使用的控件。
大家还有什么思路,一起来谈一谈。
Avoid
2007-06-29
打赏
举报
回复
一条SQL语句就能实现的。
何必舍近求远写一大堆代码呢?
QuinsonYue
2007-06-29
打赏
举报
回复
up
Fan52027
2007-06-29
打赏
举报
回复
我在工作中也碰到和樓主一樣的問題,我的解決辦法是,寫一個公司,可以實現把N個txt文件合并成一個txt文件,然后用循環導入數據庫。
wangsaokui
2007-06-29
打赏
举报
回复
bcp将文本文件循环导入SqlServer
数据库Test中有表Files和Data,Files中保存着txt文本的地址,写个存储将txt文本地址循环读出并使用bcp命令将txt文本里面的数据导入sqlserver中
CREATE PROCEDURE import
AS
declare @FilePath varchar(50)
declare @sql varchar(1000)
DECLARE table_cur CURSOR FOR
SELECT path FROM Files
OPEN table_cur
FETCH NEXT FROM table_cur INTO @FilePath
WHILE @@fetch_status = 0
BEGIN
set @sql='bcp Test..Data in '+@FilePath+' -S -Usa -P1 -c -t, '
EXEC master..xp_cmdshell @sql
FETCH NEXT FROM table_cur INTO @FilePath
END
DEALLOCATE table_cur
GO
wangsaokui
2007-06-29
打赏
举报
回复
** 导入文本文件
EXEC master..xp_cmdshell 'bcp dbname..tablename in c:\DT.txt -c -Sservername -Usa -Ppassword'
/** 导出文本文件
EXEC master..xp_cmdshell 'bcp dbname..tablename out c:\DT.txt -c -Sservername -Usa -Ppassword'
或
EXEC master..xp_cmdshell 'bcp "Select * from dbname..tablename" queryout c:\DT.txt -c -Sservername -Usa -Ppassword'
导出到TXT文本,用逗号分开
exec master..xp_cmdshell 'bcp "库名..表名" out "d:\tt.txt" -c -t ,-U sa -P password'
BULK INSERT 库名..表名
FROM 'c:\test.txt'
WITH (
FIELDTERMINATOR = ';',
ROWTERMINATOR = '\n'
做一个存储过程,然后C#调用
Lengjian
2007-06-29
打赏
举报
回复
看到网上也有不少朋友问的,不如大家都发表高见,然后我们做一个通用控件贴上来
guyehanxinlei
2007-06-29
打赏
举报
回复
UP
Lengjian
2007-06-29
打赏
举报
回复
TO leng9996(探针) :给我一个拜读一下,呵呵,有现成的就更好了
tujiaping
2007-06-29
打赏
举报
回复
貌似见过一个用odbc做的,你网上找一下,应该找得到的
leng9996
2007-06-29
打赏
举报
回复
什么数据库阿,如果是ms的,可以用bcp命令,这个效率比较高
我做过这个,需要的话可以发代码给你
greenery
2007-06-29
打赏
举报
回复
如果你的文件格式是用逗号分割的话,好象可以用CVS模式作为数据源导入
DarkChampion
2007-06-29
打赏
举报
回复
up
ztenv
2007-06-29
打赏
举报
回复
两重循环:1 重找到所有的文件,API可以实现找到所有的指定类型的文件
2重循环读取一个文件中的数据并写入到数据库
最好用多线程来实现,做成一个服务更好,
大个啊
2007-06-29
打赏
举报
回复
sql的导入工具也是循环读取写入的
Lengjian
2007-06-29
打赏
举报
回复
这个方案的起因是:我要将每天的文本日志导入导入到sql server中,现在想用程序实现,但是写的循环效率太低了,你想啊,用文本作为数据源,通过sql的导入工具很轻松就导入了,那么用程序自动执行这一操作呢?应该也是可以的吧?大家都来说说自己觉得好的方案。
Lengjian
2007-06-29
打赏
举报
回复
这一切都要通过程序自动实现,手动实现的就不要包含在此次讨论中了,大家先讨论,然后我写一个控件贴上来一起切磋一番。
wzd24
2007-06-29
打赏
举报
回复
Lengjian(飞扬) ( ) 信誉:100 Blog 加为好友 2007-06-29 11:15:47 得分: 0
附加条件:
这样的文本有n多个,类似于日志那样的,每天都生成好多个,呵呵,要先获取文件名,然后将指定路径的文档挨个向数据库表中导入。
呵呵,大家继续出谋划策。
-----------------------------------------------------------------
用程序循环处理!!!最简单!
Lengjian
2007-06-29
打赏
举报
回复
附加条件:
这样的文本有n多个,类似于日志那样的,每天都生成好多个,呵呵,要先获取文件名,然后将指定路径的文档挨个向数据库表中导入。
呵呵,大家继续出谋划策。
加载更多回复(9)
文本
文件
导入
数据库
C#
文本
文件
导入
数据库
C#
opfileDialog的使用
C#
实现
的多种文件
导入
与导出
用抽象工厂
实现
的多种文件
导入
与导出,包括
文本
文件,Word,Excel,
数据库
,XML等多中文件的
导入
与导出,其中用到了抽象工厂的设计模式,这是我的一个实验,希望对大家有帮助 附作业要求: 11)给出一个从键盘读入字符...
C#
从串口读取数据并保存到ACCESS
数据库
中
自己学习
C#
开发时候练习写的串口传输程序,并将接受
文本
框的
文本
按空格分开存档到
数据库
中供查询的想修改,其中DataReceived事件我没有定义太复杂,而是将数据转存到一个list中缓存,之后再供主线程处理,不知这种...
c#
导入
sql2000数据实例
c#
实现
sql2000
数据库
导入
数据,此程序是
实现
从txt
文本
文档
导入
sql2000
数据库
的过程。因小弟能力有限所以只能写到这个水平,望大侠指正
C#
excel中的数据
导入
到
数据库
中
数据库
数据导出excel
C#
excel中的数据
导入
到
数据库
中
数据库
数据导出excel
C#
110,536
社区成员
642,578
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章