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

dashanyelang 2017-01-06 05:21:31
從TXT文檔中讀取的數據如下文件中的數據的列是用tab鍵隔開的,現在已經讀取了文檔,怎麼將其存入dataTable中?
...全文
313 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
royler 2017-01-10
  • 打赏
  • 举报
回复
file有现成的方法去读取文件就没有必要使用 流去读了.流读取出来的还需要转换成string才可以使用.所有你之前的代码分割才会出错.
royler 2017-01-09
  • 打赏
  • 举报
回复

 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就写成什么类型,的放的时候转一下就行了.过程中判断下值是否正确,等等
dashanyelang 2017-01-09
  • 打赏
  • 举报
回复
引用 5 楼 starfd 的回复:
csvhelper,设定分割符是\t 或者你自己一行行读取也行,然后split也行
遇到一個問題,是先將txt文檔中的數據讀完嗎,然後用split分割,存入數組中,在填充到dataTable中嗎? 如果這樣的話又該用那種數據類型的數組呢?
  • 打赏
  • 举报
回复
csvhelper,设定分割符是\t 或者你自己一行行读取也行,然后split也行
EnForGrass 2017-01-09
  • 打赏
  • 举报
回复
参考http://www.cnblogs.com/-lxl/p/5856525.html
dashanyelang 2017-01-09
  • 打赏
  • 举报
回复
引用 17 楼 ducker3590 的回复:
这个返回的是一个char数组 Split是string的方法 你用File读取文件应该就可以了

rs.ReadToEnd();
謝謝,已經完美的解決了我的問題,那個從第三行開始讀也已經解決了
 var rsList = File.ReadAllLines(@nrs, Encoding.Default).Skip(2);
dashanyelang 2017-01-09
  • 打赏
  • 举报
回复
引用 18 楼 dashanyelang 的回复:
[quote=引用 17 楼 ducker3590 的回复:]
这个返回的是一个char数组 Split是string的方法
你用File读取文件应该就可以了

rs.ReadToEnd();

謝謝,但是文檔的前2行我是要的,那又該怎麼做?源文檔是這樣的[/quote]
dashanyelang 2017-01-09
  • 打赏
  • 举报
回复
引用 17 楼 ducker3590 的回复:
这个返回的是一个char数组 Split是string的方法 你用File读取文件应该就可以了

rs.ReadToEnd();
謝謝,但是文檔的前2行我是要的,那又該怎麼做?源文檔是這樣的
csdnFUCKINGSUCKS 2017-01-09
  • 打赏
  • 举报
回复
这个返回的是一个char数组 Split是string的方法 你用File读取文件应该就可以了

rs.ReadToEnd();
dashanyelang 2017-01-09
  • 打赏
  • 举报
回复
引用 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);[/quote]
var 不能用的话就这样写

string[] values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);
[/quote]
不是 var 報錯,是item那裡報錯[/quote][/quote]
什么错误 我本地测了下没问题
[/quote]是這樣

引用 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);[/quote]
var 不能用的话就这样写

string[] values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);
[/quote]
不是 var 報錯,是item那裡報錯[/quote][/quote]
什么错误 我本地测了下没问题
[/quote]是這樣[/quote]
挡住了[/quote]是這樣的
csdnFUCKINGSUCKS 2017-01-09
  • 打赏
  • 举报
回复
引用 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);[/quote] var 不能用的话就这样写

string[] values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);
[/quote] 不是 var 報錯,是item那裡報錯[/quote][/quote] 什么错误 我本地测了下没问题 [/quote]是這樣[/quote] 挡住了
dashanyelang 2017-01-09
  • 打赏
  • 举报
回复
引用 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);[/quote]
var 不能用的话就这样写

string[] values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);
[/quote]
不是 var 報錯,是item那裡報錯[/quote][/quote]
什么错误 我本地测了下没问题
[/quote]是這樣
csdnFUCKINGSUCKS 2017-01-09
  • 打赏
  • 举报
回复
引用 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);[/quote]
var 不能用的话就这样写

string[] values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);
[/quote]
不是 var 報錯,是item那裡報錯[/quote][/quote]
什么错误 我本地测了下没问题
dashanyelang 2017-01-09
  • 打赏
  • 举报
回复
引用 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);[/quote]
var 不能用的话就这样写

string[] values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);
[/quote]
不是 var 報錯,是item那裡報錯[/quote]
csdnFUCKINGSUCKS 2017-01-09
  • 打赏
  • 举报
回复
引用 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);[/quote] var 不能用的话就这样写

string[] values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);
[/quote] 不是 var 報錯,是item那裡報錯[/quote] 你断点看下item的值是什么
dashanyelang 2017-01-09
  • 打赏
  • 举报
回复
引用 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);[/quote] var 不能用的话就这样写

string[] values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);
[/quote] 不是 var 報錯,是item那裡報錯
csdnFUCKINGSUCKS 2017-01-09
  • 打赏
  • 举报
回复
引用 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);[/quote] var 不能用的话就这样写

string[] values= item.Split(new [] {"\t"}, StringSplitOptions.RemoveEmptyEntries);
dashanyelang 2017-01-09
  • 打赏
  • 举报
回复
引用 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);
  • 打赏
  • 举报
回复
首先你这样定义txt数据肯定会出问题 比如 1 光强5 2.00 2 F4-光强063.00 这样你是没法分开数据的 上次就跟你说了txt中的数据每一列都要加一个分隔符,如“,”等 读取txt数据,根据分隔符都到三列数据写入到table中 dataTable绑定数据源,即绑定table 自己动动手,动动脑
dashanyelang 2017-01-06
  • 打赏
  • 举报
回复
引用 1 楼 xiaojie_cp 的回复:
按你的TXT构造一个三列的DataTable,然后split你的数据,分行存进DataTable
還是不太明白,能給點代碼提示下嗎?
加载更多回复(1)

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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