数码控科技猎奇Iphone动漫星座游戏电竞lolcosplay王者荣耀攻略allcnewsBLOGNEWSBLOGASKBLOGBLOGZSK全部技术问答问答技术问答it问答代码软件新闻开发博客电脑/网络手机/数码笔记本电脑互联网操作系统软件硬件编程开发360产品资源分享电脑知识文档中心IT全部全部分类全部分类技术牛文全部分类教程最新网页制作cms教程平面设计媒体动画操作系统网站运营网络安全服务器教程数据库工具网络安全软件教学vbscript正则表达式javascript批处理更多»编程更新教程更新游戏更新allitnewsJava新闻网络医疗信息化安全创业站长电商科技访谈域名会议专栏创业动态融资创投创业学院 / 产品经理创业公司人物访谈营销开发数据库服务器系统虚拟化云计算嵌入式移动开发作业作业1常见软件all电脑网络手机数码生活游戏体育运动明星影音休闲爱好文化艺术社会民生教育科学医疗健康金融管理情感社交地区其他电脑互联网软件硬件编程开发360相关产品手机平板其他电子产品摄影器材360硬件通讯智能设备购物时尚生活常识美容塑身服装服饰出行旅游交通汽车购房置业家居装修美食烹饪单机电脑游戏网页游戏电视游戏桌游棋牌游戏手机游戏小游戏掌机游戏客户端游戏集体游戏其他游戏体育赛事篮球足球其他运动球类运动赛车健身运动运动用品影视娱乐人物音乐动漫摄影摄像收藏宠物幽默搞笑起名花鸟鱼虫茶艺彩票星座占卜书画美术舞蹈小说图书器乐声乐小品相声戏剧戏曲手工艺品历史话题时事政治就业职场军事国防节日风俗法律法规宗教礼仪礼节自然灾害360维权社会人物升学入学人文社科外语资格考试公务员留学出国家庭教育学习方法语文物理生物工程学农业数学化学健康知识心理健康孕育早教内科外科妇产科儿科皮肤科五官科男科整形中医药品传染科其他疾病医院两性肿瘤科创业投资企业管理财务税务银行股票金融理财基金债券保险贸易商务文书国民经济爱情婚姻家庭烦恼北京上海重庆天津黑龙江吉林辽宁河北内蒙古山西陕西宁夏甘肃青海新疆西藏四川贵州云南河南湖北湖南山东江苏浙江安徽江西福建广东广西海南香港澳门台湾海外地区

c#如何將從txt文檔讀取的數據如此datable中-CSDN论坛

来源:互联网  责任编辑:小易  时间:2018/1/18 22:04:17
本网有用户碰到这样的问题:c#如何將從txt文檔讀取的數據如此datable中-CSDN论坛,具体问题如下:

c# datatable

本网根据需求用户需求,为用户寻得以下其他网友提供的解决方法,方法仅供参考,具体如下:

解决方案1:

按你的TXT构造一个三列的DataTable,然后split你的数据,分行存进DataTable

解决方案2:

引用 1 楼 xiaojie_cp 的回复:
按你的TXT构造一个三列的DataTable,然后split你的数据,分行存进DataTable
還是不太明白,能給點代碼提示下嗎?

解决方案3:

首先你这样定义txt数据肯定会出问题
比如
1      光强5       2.00
2      F4-光强063.00       这样你是没法分开数据的

上次就跟你说了txt中的数据每一列都要加一个分隔符,如“,”等
读取txt数据,根据分隔符都到三列数据写入到table中
dataTable绑定数据源,即绑定table

自己动动手,动动脑

解决方案4:

参考http://www.cnblogs.com/-lxl/p/5856525.html

解决方案5:

csvhelper,设定分割符是\t
或者你自己一行行读取也行,然后split也行

解决方案6:

引用 5 楼 starfd 的回复:
csvhelper,设定分割符是\t
或者你自己一行行读取也行,然后split也行

遇到一個問題,是先將txt文檔中的數據讀完嗎,然後用split分割,存入數組中,在填充到dataTable中嗎?
如果這樣的話又該用那種數據類型的數組呢?

解决方案7:


 var list= File.ReadAllLines("test.txt");

            DataTable dt=new DataTable();
            dt.Columns.Add("a",typeof(string));
            dt.Columns.Add("b", typeof(string));
            dt.Columns.Add("c", typeof(string));
            foreach (var item in list)
            {
                
                var values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);
                DataRow row = dt.NewRow();
               
                row["a"] = values[0];
                row["b"] = values[1];
                row["c"] = values[2];

                dt.Rows.Add(row);
            }




大体就是这样,具体你是什么类型你的dt就写成什么类型,的放的时候转一下就行了.过程中判断下值是否正确,等等

解决方案8:

引用 7 楼 royler 的回复:

 var list= File.ReadAllLines("test.txt");

            DataTable dt=new DataTable();
            dt.Columns.Add("a",typeof(string));
            dt.Columns.Add("b", typeof(string));
            dt.Columns.Add("c", typeof(string));
            foreach (var item in list)
            {
                
                var values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);
                DataRow row = dt.NewRow();
               
                row["a"] = values[0];
                row["b"] = values[1];
                row["c"] = values[2];

                dt.Rows.Add(row);
            }




大体就是这样,具体你是什么类型你的dt就写成什么类型,的放的时候转一下就行了.过程中判断下值是否正确,等等

確定使用這句不報錯 var values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);

解决方案9:

引用 8 楼 dashanyelang 的回复:
Quote: 引用 7 楼 royler 的回复:


 var list= File.ReadAllLines("test.txt");

            DataTable dt=new DataTable();
            dt.Columns.Add("a",typeof(string));
            dt.Columns.Add("b", typeof(string));
            dt.Columns.Add("c", typeof(string));
            foreach (var item in list)
            {
                
                var values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);
                DataRow row = dt.NewRow();
               
                row["a"] = values[0];
                row["b"] = values[1];
                row["c"] = values[2];

                dt.Rows.Add(row);
            }




大体就是这样,具体你是什么类型你的dt就写成什么类型,的放的时候转一下就行了.过程中判断下值是否正确,等等

確定使用這句不報錯 var values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);

var 不能用的话就这样写

string[] values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);

解决方案10:

引用 9 楼 ducker3590 的回复:
Quote: 引用 8 楼 dashanyelang 的回复:

Quote: 引用 7 楼 royler 的回复:


 var list= File.ReadAllLines("test.txt");

            DataTable dt=new DataTable();
            dt.Columns.Add("a",typeof(string));
            dt.Columns.Add("b", typeof(string));
            dt.Columns.Add("c", typeof(string));
            foreach (var item in list)
            {
                
                var values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);
                DataRow row = dt.NewRow();
               
                row["a"] = values[0];
                row["b"] = values[1];
                row["c"] = values[2];

                dt.Rows.Add(row);
            }




大体就是这样,具体你是什么类型你的dt就写成什么类型,的放的时候转一下就行了.过程中判断下值是否正确,等等

確定使用這句不報錯 var values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);

var 不能用的话就这样写

string[] values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);

不是 var 報錯,是item那裡報錯

解决方案11:

引用 10 楼 dashanyelang 的回复:
Quote: 引用 9 楼 ducker3590 的回复:

Quote: 引用 8 楼 dashanyelang 的回复:

Quote: 引用 7 楼 royler 的回复:


 var list= File.ReadAllLines("test.txt");

            DataTable dt=new DataTable();
            dt.Columns.Add("a",typeof(string));
            dt.Columns.Add("b", typeof(string));
            dt.Columns.Add("c", typeof(string));
            foreach (var item in list)
            {
                
                var values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);
                DataRow row = dt.NewRow();
               
                row["a"] = values[0];
                row["b"] = values[1];
                row["c"] = values[2];

                dt.Rows.Add(row);
            }




大体就是这样,具体你是什么类型你的dt就写成什么类型,的放的时候转一下就行了.过程中判断下值是否正确,等等

確定使用這句不報錯 var values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);

var 不能用的话就这样写

string[] values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);

不是 var 報錯,是item那裡報錯

你断点看下item的值是什么

解决方案12:

引用 10 楼 dashanyelang 的回复:
Quote: 引用 9 楼 ducker3590 的回复:

Quote: 引用 8 楼 dashanyelang 的回复:

Quote: 引用 7 楼 royler 的回复:


 var list= File.ReadAllLines("test.txt");

            DataTable dt=new DataTable();
            dt.Columns.Add("a",typeof(string));
            dt.Columns.Add("b", typeof(string));
            dt.Columns.Add("c", typeof(string));
            foreach (var item in list)
            {
                
                var values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);
                DataRow row = dt.NewRow();
               
                row["a"] = values[0];
                row["b"] = values[1];
                row["c"] = values[2];

                dt.Rows.Add(row);
            }




大体就是这样,具体你是什么类型你的dt就写成什么类型,的放的时候转一下就行了.过程中判断下值是否正确,等等

確定使用這句不報錯 var values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);

var 不能用的话就这样写

string[] values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);

不是 var 報錯,是item那裡報錯

解决方案13:

引用 12 楼 dashanyelang 的回复:
Quote: 引用 10 楼 dashanyelang 的回复:

Quote: 引用 9 楼 ducker3590 的回复:

Quote: 引用 8 楼 dashanyelang 的回复:

Quote: 引用 7 楼 royler 的回复:


 var list= File.ReadAllLines("test.txt");

            DataTable dt=new DataTable();
            dt.Columns.Add("a",typeof(string));
            dt.Columns.Add("b", typeof(string));
            dt.Columns.Add("c", typeof(string));
            foreach (var item in list)
            {
                
                var values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);
                DataRow row = dt.NewRow();
               
                row["a"] = values[0];
                row["b"] = values[1];
                row["c"] = values[2];

                dt.Rows.Add(row);
            }




大体就是这样,具体你是什么类型你的dt就写成什么类型,的放的时候转一下就行了.过程中判断下值是否正确,等等

確定使用這句不報錯 var values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);

var 不能用的话就这样写

string[] values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);

不是 var 報錯,是item那裡報錯

什么错误 我本地测了下没问题

解决方案14:

引用 13 楼 ducker3590 的回复:
Quote: 引用 12 楼 dashanyelang 的回复:

Quote: 引用 10 楼 dashanyelang 的回复:

Quote: 引用 9 楼 ducker3590 的回复:

Quote: 引用 8 楼 dashanyelang 的回复:

Quote: 引用 7 楼 royler 的回复:


 var list= File.ReadAllLines("test.txt");

            DataTable dt=new DataTable();
            dt.Columns.Add("a",typeof(string));
            dt.Columns.Add("b", typeof(string));
            dt.Columns.Add("c", typeof(string));
            foreach (var item in list)
            {
                
                var values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);
                DataRow row = dt.NewRow();
               
                row["a"] = values[0];
                row["b"] = values[1];
                row["c"] = values[2];

                dt.Rows.Add(row);
            }




大体就是这样,具体你是什么类型你的dt就写成什么类型,的放的时候转一下就行了.过程中判断下值是否正确,等等

確定使用這句不報錯 var values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);

var 不能用的话就这样写

string[] values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);

不是 var 報錯,是item那裡報錯

什么错误 我本地测了下没问题
是這樣

解决方案15:

引用 14 楼 dashanyelang 的回复:
Quote: 引用 13 楼 ducker3590 的回复:

Quote: 引用 12 楼 dashanyelang 的回复:

Quote: 引用 10 楼 dashanyelang 的回复:

Quote: 引用 9 楼 ducker3590 的回复:

Quote: 引用 8 楼 dashanyelang 的回复:

Quote: 引用 7 楼 royler 的回复:


 var list= File.ReadAllLines("test.txt");

            DataTable dt=new DataTable();
            dt.Columns.Add("a",typeof(string));
            dt.Columns.Add("b", typeof(string));
            dt.Columns.Add("c", typeof(string));
            foreach (var item in list)
            {
                
                var values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);
                DataRow row = dt.NewRow();
               
                row["a"] = values[0];
                row["b"] = values[1];
                row["c"] = values[2];

                dt.Rows.Add(row);
            }




大体就是这样,具体你是什么类型你的dt就写成什么类型,的放的时候转一下就行了.过程中判断下值是否正确,等等

確定使用這句不報錯 var values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);

var 不能用的话就这样写

string[] values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);

不是 var 報錯,是item那裡報錯

什么错误 我本地测了下没问题
是這樣

挡住了

解决方案16:

引用 14 楼 dashanyelang 的回复:
Quote: 引用 13 楼 ducker3590 的回复:

Quote: 引用 12 楼 dashanyelang 的回复:

Quote: 引用 10 楼 dashanyelang 的回复:

Quote: 引用 9 楼 ducker3590 的回复:

Quote: 引用 8 楼 dashanyelang 的回复:

Quote: 引用 7 楼 royler 的回复:


 var list= File.ReadAllLines("test.txt");

            DataTable dt=new DataTable();
            dt.Columns.Add("a",typeof(string));
            dt.Columns.Add("b", typeof(string));
            dt.Columns.Add("c", typeof(string));
            foreach (var item in list)
            {
                
                var values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);
                DataRow row = dt.NewRow();
               
                row["a"] = values[0];
                row["b"] = values[1];
                row["c"] = values[2];

                dt.Rows.Add(row);
            }




大体就是这样,具体你是什么类型你的dt就写成什么类型,的放的时候转一下就行了.过程中判断下值是否正确,等等

確定使用這句不報錯 var values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);

var 不能用的话就这样写

string[] values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);

不是 var 報錯,是item那裡報錯

什么错误 我本地测了下没问题
是這樣

引用 15 楼 ducker3590 的回复:
Quote: 引用 14 楼 dashanyelang 的回复:

Quote: 引用 13 楼 ducker3590 的回复:

Quote: 引用 12 楼 dashanyelang 的回复:

Quote: 引用 10 楼 dashanyelang 的回复:

Quote: 引用 9 楼 ducker3590 的回复:

Quote: 引用 8 楼 dashanyelang 的回复:

Quote: 引用 7 楼 royler 的回复:


 var list= File.ReadAllLines("test.txt");

            DataTable dt=new DataTable();
            dt.Columns.Add("a",typeof(string));
            dt.Columns.Add("b", typeof(string));
            dt.Columns.Add("c", typeof(string));
            foreach (var item in list)
            {
                
                var values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);
                DataRow row = dt.NewRow();
               
                row["a"] = values[0];
                row["b"] = values[1];
                row["c"] = values[2];

                dt.Rows.Add(row);
            }




大体就是这样,具体你是什么类型你的dt就写成什么类型,的放的时候转一下就行了.过程中判断下值是否正确,等等

確定使用這句不報錯 var values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);

var 不能用的话就这样写

string[] values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);

不是 var 報錯,是item那裡報錯

什么错误 我本地测了下没问题
是這樣

挡住了
是這樣的

解决方案17:

这个返回的是一个char数组 Split是string的方法
你用File读取文件应该就可以了


rs.ReadToEnd();

解决方案18:

引用 17 楼 ducker3590 的回复:
这个返回的是一个char数组 Split是string的方法
你用File读取文件应该就可以了

rs.ReadToEnd();

謝謝,但是文檔的前2行我是要的,那又該怎麼做?源文檔是這樣的

解决方案19:

引用 18 楼 dashanyelang 的回复:
Quote: 引用 17 楼 ducker3590 的回复:

这个返回的是一个char数组 Split是string的方法
你用File读取文件应该就可以了

rs.ReadToEnd();

謝謝,但是文檔的前2行我是要的,那又該怎麼做?源文檔是這樣的

解决方案20:

引用 17 楼 ducker3590 的回复:
这个返回的是一个char数组 Split是string的方法
你用File读取文件应该就可以了

rs.ReadToEnd();

謝謝,已經完美的解決了我的問題,那個從第三行開始讀也已經解決了
 var rsList = File.ReadAllLines(@nrs, Encoding.Default).Skip(2);

解决方案21:

file有现成的方法去读取文件就没有必要使用 流去读了.流读取出来的还需要转换成string才可以使用.所有你之前的代码分割才会出错.


  • 本文相关:
  • 站长必读,如何真正写好一篇原创文章
  • 互联网之路细嗅蔷薇 资深站长分享掘金之道
  • 企业站的站长的工作重心究竟有哪些
  • 浅析:行业门户网站的一些盈利模式
  • 3000IP的企业网站每天订单不到30个的苦恼
  • 网站想内外兼修?先学习提高网站可用性的6大原则
  • 浅谈网页设计中的简约之美
  • 网页改版实战:日本设计师如何彻底优化旅游网站?
  • 网页改版实战!日本设计师如何彻底优化招聘网站?
  • 2015年值得关注的21个网页设计趋势
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved