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;
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 导入数据库文件的步骤是怎样的?(就是把一个信息表添加进去)