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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
参考技术A 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();
本回答被提问者采纳
参考技术B 在页面拖一个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");

参考技术C 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();

excl数据怎么导入到MongoDB中,或者怎样将excl处理在导入到数据库中,数据量有4万条

参考技术A 在命令行执行 执行 imongoimport命令 导入csv格式文件
步骤1: 将excel文件另存为 csv文件
步骤2: 将csv文件使用txt打开 另存为 编码格式选择UTF-8
步骤3: 执行命令 mongoimport -d 目标数据库 -c 目标collection --type csv --headerline --file 目标文件.csv
注:文件路径太长的话 1/可以直接拖拽到命名行窗口 2/可以从文件位置打开命名行窗口
参考技术B 步骤一、将 *.xlsx 另存为 *.csv
步骤二、执行 imongoimport命令
mongoimport -d JinGuan -c 表 --type csv --headerline -file 文件.csv

参数说明:
d:数据库名
c:collection名
type:文件类型,指明是csv文件
headline:指明第一行是列名,不需要导入
file:csv文件路径及名字
更多参数请执行 mongoimport --help查看本回答被提问者和网友采纳

以上是关于C#怎样把得到的txt文件数据导入DataTable里面!的主要内容,如果未能解决你的问题,请参考以下文章

向C# winform 的DataDridView 导入数据库文件的步骤是怎样的?(就是把一个信息表添加进去)

怎样将C#生成的数据导出

c#写对象来读取TXT文本文件

请问:在sql 2005中导入文本文件时,怎么去掉双引号?

excl数据怎么导入到MongoDB中,或者怎样将excl处理在导入到数据库中,数据量有4万条

C#怎样将数组作为文件流保存起来