C#怎样把得到的txt文件数据导入DataTable里面!

读取txt文件里面的数据,然后像操作数据库表那样,根据ID查找,
例如txt文件里面数据时这样的,
A B C D
1,34,ff,56
2,34,dd,78
3,20,tr,77
ABCD是假设给一个字段!
我的txt里面有很多条数据,我只举出3行数据!
我用下面的那个方法得到txt数据,
想导入到DataTable 再实现根据查找B=34得到所有数据!
请高手指点一下,最好给点代码,谢谢!
List<string> liststr = SystemShareManager.getFile();
foreach (string path in liststr)
{
string conten;
int currentLine = 0;
//判断txt文件是否存在
if (File.Exists(path) == true)
{
StreamReader sysr = new StreamReader(path, UnicodeEncoding.GetEncoding("GBK"));
StringBuilder sb = new StringBuilder();
//读取txt文件,不读第一行数据
while (sysr.Peek() > -1)
{
if (currentLine == 0)
{
sysr.ReadLine();
}
else
{
sb.AppendLine(sysr.ReadLine());
}
currentLine++;
}
conten = sb.ToString();
this.txtContene.Text += conten;
sysr.Close();
}
continue;

int intColCount = 0;
bool blnFlag = true;
//定义DataTable
DataTable mydt = new DataTable( "myTableName ");
//定义列
DataColumn mydc;
//定义行
DataRow mydr;

string strpath = " ";
string strline;
string [] aryline;

//读取文件
System.IO.StreamReader mysr = new System.IO.StreamReader(strpath);

//只要读取到的内容不是空,就一直读取文件
while((strline = mysr.ReadLine()) != null)
{
//拆分字符串,已 | 为间隔
aryline = strline.Split(new char[]{ '| '});

if (blnFlag)
{
blnFlag = false;
//获取长度
intColCount = aryline.Length;
for (int i = 0; i < aryline.Length; i++)
{
//添加列
mydc = new DataColumn(aryline[i]);
//将添加的列加入到DataTable中
mydt.Columns.Add(mydc);
}
}

//新创建行,行的列头、数据类型与DataTable相同
mydr = mydt.NewRow();
for (int i = 0; i < intColCount; i++)
{
// 给新行的数据赋值
mydr[i] = aryline[i];
}
//将新行数据加入到DataTable中
mydt.Rows.Add(mydr);
}
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-12-15
List<string> liststr = new List<string>();
DataTable table = new DataTable();

DataColumn column = null;

// 把列假如到table中
column = new DataColumn("A");
table.Columns.Add(column);

column = new DataColumn("B");
table.Columns.Add(column);

column = new DataColumn("C");
table.Columns.Add(column);

column = new DataColumn("D");
table.Columns.Add(column);

column = new DataColumn("E");
table.Columns.Add(column);

column = new DataColumn("F");
table.Columns.Add(column);

DataRow row;

StreamReader sysr = null;
foreach (string path in liststr)
{
string conten;
int currentLine = 0;
//判断txt文件是否存在
if (File.Exists(path) == true)
{
sysr = new StreamReader(path, UnicodeEncoding.GetEncoding("GBK"));
StringBuilder sb = new StringBuilder();
//读取txt文件,不读第一行数据
while (sysr.Peek() > -1)
{
if (currentLine == 0)
{
sysr.ReadLine();
}
else
{
conten = sysr.ReadLine();
sb.AppendLine(conten);

// 把数据以,号分隔
string[] values = conten.Split(',');

row = table.NewRow();
row["A"] = values[0];
row["B"] = values[1];
row["C"] = values[2];
row["D"] = values[3];
row["E"] = values[4];
row["F"] = values[5];

table.Rows.Add(row);
}

currentLine++;
}

}

continue;
}

if (sysr != null)
{
sysr.Close();
}本回答被提问者采纳
第2个回答  推荐于2016-03-10
在页面拖一个saveFileDialog1控件;
private void btnJgbc_Click(object sender, EventArgs e)
{
try
{
DataTable myDT = new DataTable();
myDT = GvtoDT(ref myGV);
WriteTxt(myDT);
MessageBox.Show("保存成功!");
}
catch
{
MessageBox.Show("保存失败!");
}
}
private void WriteTxt(DataTable tb)
{
StreamWriter sr;

string report;
if (File.Exists(Application.StartupPath + "//MyFile3.txt")) //如果文件存在,则创建File.AppendText对象
{
sr = File.AppendText(Application.StartupPath + "//MyFile3.txt");
report = "appended";
}
else //如果文件不存在,则创建File.CreateText对象
{
sr = File.CreateText(Application.StartupPath + "//MyFile3.txt");
report = "created";
}
StringBuilder sb = new StringBuilder();
sr.WriteLine("注数/t红1/t红2/t红3/t红4/t红5/t红6/t蓝1/t蓝2/r/n");
foreach (DataRow dr in tb.Rows)
{
sr.WriteLine(dr[0].ToString() + "/t" + dr[1].ToString() + "/t" + dr[2].ToString() + "/t" + dr[3].ToString() + "/t" + dr[4].ToString() + "/t" + dr[5].ToString() + "/t" + dr[6].ToString() + "/t" + dr[7].ToString() + "/r/n");

}
sr.Close();
if( saveFileDialog1.ShowDialog()==DialogResult.OK)
{
File.Copy(Application.StartupPath + "//MyFile3.txt", saveFileDialog1.FileName, true);
File.Delete(Application.StartupPath + "//MyFile3.txt");
}
}
第3个回答  2019-09-12
List<string>
liststr
=
new
List<string>();
DataTable
table
=
new
DataTable();
DataColumn
column
=
null;
//
把列假如到table中
column
=
new
DataColumn("A");
table.Columns.Add(column);
column
=
new
DataColumn("B");
table.Columns.Add(column);
column
=
new
DataColumn("C");
table.Columns.Add(column);
column
=
new
DataColumn("D");
table.Columns.Add(column);
column
=
new
DataColumn("E");
table.Columns.Add(column);
column
=
new
DataColumn("F");
table.Columns.Add(column);
DataRow
row;
StreamReader
sysr
=
null;
foreach
(string
path
in
liststr)
{
string
conten;
int
currentLine
=
0;
//判断txt文件是否存在
if
(File.Exists(path)
==
true)
{
sysr
=
new
StreamReader(path,
UnicodeEncoding.GetEncoding("GBK"));
StringBuilder
sb
=
new
StringBuilder();
//读取txt文件,不读第一行数据
while
(sysr.Peek()
>
-1)
{
if
(currentLine
==
0)
{
sysr.ReadLine();
}
else
{
conten
=
sysr.ReadLine();
sb.AppendLine(conten);
//
把数据以,号分隔
string[]
values
=
conten.Split(',');
row
=
table.NewRow();
row["A"]
=
values[0];
row["B"]
=
values[1];
row["C"]
=
values[2];
row["D"]
=
values[3];
row["E"]
=
values[4];
row["F"]
=
values[5];
table.Rows.Add(row);
}
currentLine++;
}
}
continue;
}
if
(sysr
!=
null)
{
sysr.Close();
}

C#怎样把得到的txt文件数据导入DataTable里面!
DataTable mydt = new DataTable( "myTableName ");\/\/定义列 DataColumn mydc;\/\/定义行 DataRow mydr;string strpath = " ";string strline;string [] aryline;\/\/读取文件 System.IO.StreamReader mysr = new System.IO.StreamReader(strpat...

C#怎样把得到的txt文件数据导入DataTable里面!
3.文件的写入 (1).使用filestream类创建文件,然后将数据写入到文件里。public void

我想从txt中读取以下内容到datagridview中,请问C#代码应如何实现
第一,读取文本内容,下面代码为读取文本内容的方法 ;第二,构造一个DataTable 将读取的文本内容构造为DataTable的一行或多行;第三,将DataTable 作为数据源绑定到DataGridview中。\/\/\/ <summary> \/\/\/ 读写txt文件 \/\/\/ <\/summary> \/\/\/ <param name="writOrread">参数值:write 或 read<\/para...

c#如何读取规定格式的TXT文件,并存入数据库
if (!txt.Equals(string.Empty)){ \/\/分割文本 string[] oldString = txt.Replace("\\r\\n", "@").Split('@');\/\/循环数组 foreach (string newTxt in oldString){ \/\/是否日期 if (newTxt.IndexOf("\/") > 0){ \/\/得到日期 } \/\/是否节目 else if (newTxt.IndexOf(":")){ \/\/得...

C#如何把txt文档导入到数据库
可以先把文件的内容读取出来存储到一个string中,然后用c#连接数据库,利用insert语句,插入到数据库中 sqlConnection conn=new sqlConnection("\/*链接字符串*\/");string sqlstr="insert into tableName values(content)";sqlCommand cmd=new Sqlcommand(conn,sqlStr);cmd.executeNonquery();只是一个思路...

在C#中怎样把数据库中的数据添加到DataTable中
DataSet ds = new DataSet();try { adapter.Fill(ds, "factors");} catch (Exception ex){ _log.Error("GetFactorsInfo() fail: ", ex);} return ds.Tables[0];} \/\/ 将DataTable中的数据显示到DataGridView中 void ShowData(DataTable dt, DataGridview dgv){ dgv.Columns.Clear();if ...

C#读取txt文本文件中的数据
1、首先先来看一下准备的txt文本文件的内容。2、然后在程序中引入操作文件的命名空间System.IO。3、接下来需要定义一个变量,存储文件所在的路径。4、然后先读取文本内容,调用File类的ReadAllLines即可读取所有内容。5、接下来是写入内容,按照下图的方式,准备要写入的内容。6、准备好内容以后,调用File的...

c#对指定文件夹里的所有txt文件进行统一的的处理,后还按原来的名字存储...
读txt文件: using(StreamReader sr=new StreamReader("文件路径")){ string strTXT=string.Empty;while((strTXT=sr.ReadLine())!=null){ \/\/用流读取是一行行读的,这里是你想把数据放到哪里,比如说datatable \/\/或者List,个人感觉List比较好 } } 将处理后的数据写入到txt文件然后存进新的...

C# 怎么把数组中的数据添加到datagridview中
mydatatable”,另一个被命名为“Mydatatable”,则用于搜索其中一个表的字符串被认为是区分大小写的。如果“mydatatable”存在而“Mydatatable”不存在,则认为该搜索字符串不区分大小写。一个DataSet可以包含数个DataTable对象,它们具有相同的TableName属性值和不同的Namespace属性值。

C#里面如何将.txt文件中的数据读入,存入数组
System.IO.TextReader reader = new System.IO.StreamReader(filePath);使用 reader.ReadLine()或reader.ReadToEnd()获取字符串,按照你的需要存入数组即可

相似回答