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得到所有数据! 请高手指点一下,最好给点代码,谢谢!

参考技术A c#读写txt文件的两种方法:
1.添加命名空间
  system.io;
  system.text;
2.文件的读取
  (1).使用filestream类进行文件的读取,并将它转换成char数组,然后输出。
byte[]
bydata
=
new
byte[100];
char[]
chardata
=
new
char[1000];
public
void
read()

try

filestream
file
=
new
filestream("e:\\test.txt",
filemode.open);
file.seek(0,
seekorigin.begin);
file.read(bydata,
0,
100);
//bydata传进来的字节数组,用以接受filestream对象中的数据,第2个参数是字节数组中开始写入数据的位置,它通常是0,表示从数组的开端文件中向数组写数据,最后一个参数规定从文件读多少字符.
decoder
d
=
encoding.default.getdecoder();
d.getchars(bydata,
0,
bydata.length,
chardata,
0);
console.writeline(chardata);
file.close();

catch
(ioexception
e)

console.writeline(e.tostring());


  (2).使用streamreader读取文件,然后一行一行的输出。
public
void
read(string
path)

streamreader
sr
=
new
streamreader(path,encoding.default);
string
line;
while
((line
=
sr.readline())
!=
null)

console.writeline(line.tostring());


3.文件的写入
  (1).使用filestream类创建文件,然后将数据写入到文件里。
public
void
write()

filestream
fs
=
new
filestream("e:\\ak.txt",
filemode.create);
//获得字节数组
byte[]
data
=
system.text.encoding.default.getbytes("hello
world!");
//开始写入
fs.write(data,
0,
data.length);
//清空缓冲区、关闭流
fs.flush();
fs.close();

  (2).使用filestream类创建文件,使用streamwriter类,将数据写入到文件。
public
void
write(string
path)

filestream
fs
=
new
filestream(path,
filemode.create);
streamwriter
sw
=
new
streamwriter(fs);
//开始写入
sw.write("hello
world!!!!");
//清空缓冲区
sw.flush();
//关闭流
sw.close();
fs.close();

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

我不是专业学计算机的,咱就学过C#基础。
但是必须要用C#做作业。
做了之后要检查结果是否正确。但是上万个数据。。。望天。
我总不能手动把C#得到的一个上万行的2维数组手动抄下来吧。
所以需要把数据导出然后用其他数学软件检验结果的正确性。
请问如何将一个C#程序做出来的一个2维数组输出到其他文件(比如excel, txt等格式的文件)
上网查了好多,好复杂啊,咱就大学里这个学期学了2月的C#,实在搞不来。
希望各位高手指点啊,简简单单的让它们排着队出来就成啦~
谢~~

首先呢 你得把你的数据绑定到一个GridView中 然后 下面的方法 就是导出了。
/// <summary>
/// 将超链接、下拉框等样式去掉
/// </summary>
/// <param name="gv"></param>
private void DisableControls(Control gv)

Literal l = new Literal();

string name = String.Empty;
for (int i = 0; i < gv.Controls.Count; i++)

if (gv.Controls[i].GetType() == typeof(LinkButton))

l.Text = (gv.Controls[i] as LinkButton).Text;
gv.Controls.Remove(gv.Controls[i]);
gv.Controls.AddAt(i, l);

else if (gv.Controls[i].GetType() == typeof(DropDownList))

l.Text = (gv.Controls[i] as DropDownList).SelectedItem.Text;
gv.Controls.Remove(gv.Controls[i]);
gv.Controls.AddAt(i, l);

else if (gv.Controls[i].GetType() == typeof(HyperLink))

l.Text = (gv.Controls[i] as HyperLink).Text;
gv.Controls.Remove(gv.Controls[i]);
gv.Controls.AddAt(i, l);


if (gv.Controls[i].HasControls())

DisableControls(gv.Controls[i]);




/// <summary>
/// 将GridView中的内容导出成Excel文件
/// 如文件名为空,则使用规则生成文件默认
/// </summary>
/// <param name="FileName">扩展名必须为xls,而不能是xlsx,否则不能直接在Excel中打开</param>
public void ToExcel(string FileName)

if (string.IsNullOrEmpty(FileName))

string filename = DateTime.Now.Ticks.ToString() + ".xls";
FileName = this.Parent.Page.Server.MapPath("~/Temp/" + filename);


//去除分页、排序
this.AllowPaging = false;
this.AllowSorting = false;

this.AutoDataBind();

//生成html
this.DisableControls(this);
HttpContext.Current.Response.Charset = "UTF-8";
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
HttpContext.Current.Response.ContentType = "application/ms-excel";
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + "" + FileName);
this.Page.EnableViewState = false;
System.IO.StringWriter tw = new System.IO.StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
this.RenderControl(hw);
string str = tw.ToString();
str = (Regex.Replace(str, @"(<a(.|\s)*?>)|</a>", "", RegexOptions.IgnoreCase));
HttpContext.Current.Response.Write(str);
HttpContext.Current.Response.End();

//还原分页、排序
this.AllowPaging = true;
this.AllowSorting = true;

this.AutoDataBind();

#endregion
参考技术A 以下代码以CSV格式保存,以逗号分隔方式保存数据,保留数组的原模原样,可以使用记事本或者Excel直接打开。
int[][] array = new int[] 1, 2, 3 , new int[] 4, 5, 6 , new int[] 7, 8, 9 ;
OpenFileDialog openFile = new OpenFileDialog();
openFile.Multiselect = false;
openFile.Filter = "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*.*";
if (openFile.ShowDialog() == DialogResult.OK)

string str = "";
StreamWriter writer = new StreamWriter(openFile.FileName, false, Encoding.Default);
for (int i = 0; i < array.Length; i++)

for (int j = 0; j < array[i].Length; j++)
str += array[i][j] + ",";
str = str.TrimEnd(',');
writer.WriteLine(str);
str = "";

writer.Close();
参考技术B 先用数组的sort()函数排序,然后
int[] aarray = new int[10000];
string input = "";
foreach (int a in aarray)

input += a + "\r\n";

//写入文本
StreamWriter sw = new StreamWriter(pathname);
sw.Write(input);
sw.Close();本回答被提问者采纳

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

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

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

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

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

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

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