C#如何读取.TXT文件

原创 2008年01月09日 12:00:00

我想上传一文件,在上传过程中读取其中的数据,并将其写入数据库中?   
   (就是在客户端(IE),让用户上传一txt文件,将其的数据倒入数据库中)   
   形如以下的.txt文档:   
    
   10001,王      强,3500,,   
   10002,李小华,4000,,   
   10003,王崇文,3500,,   
   10004,姚      敏,5000,,

1楼

这个问题用二进制流肯定不行。   
   上传后,实例化一个streamreader,然后读取,最后保存倒一个数组中。   
   dim    reader    as    new    streamreader(file.opentext(filepath,accessmod))   
   dim    strContent    as    string=reader.readtoend()   
   dim    arryContent()as    string=strContent.split(",")   
   往下楼主应该明白了,数组里保存得是用逗号格开得   
   ,如果你一组数据是一行,那就用reader.readline(),应该是这个东西!然后循环保存。   
   数组数据做参数。


2楼

private    void    Page_Load(object    sender,    System.EventArgs    e)   
   {   
   //    在此处放置用户代码以初始化页面   
   if(Request.RequestType=="POST")   
   {   
   if(this.UpFile.PostedFile.ContentLength>0)   
   {   
   int    Pos    =    UpFile.PostedFile.FileName.LastIndexOf("//")+1;   
   FileName    =    UpFile.PostedFile.FileName.Substring(Pos);   
   FilePath="../"    +    FileName;   
   UpFile.PostedFile.SaveAs(Server.MapPath(FilePath));   
           UpFile.PostedFile.InputStream.Close();   
           ReadFile(Server.MapPath(FilePath));   
        
    
                                
   }   
   else   
   {   
   Response.Write("<script    language='Javascript'>alert('请选择要上传的文件!');history.go(-1);</script>");   
   Response.End();   
    
   }   
   }   
   }


3楼

楼上的代码是先上传文件,然后读取文件   
   private    bool    existedName(string    usercode)   
   {   
   dc.refConn(ref    dbconn);   
   dbconn.Open();   
   string    sel="select    count(*)    from    tab_xx    where    usercode='"+usercode+"'";   
    
   SqlCommand    sc=new    SqlCommand(sel,dbconn);   
   int    ck=(int)sc.ExecuteScalar();   
                             dbconn.Close();   
   if(ck>0)   
   {   
   return    true;   
   }   
   return    false;   
    
   }   
    
   这是判断数据库是否已存在记录


4楼

private    void    ReadFile(string    path)   
   {   
   if(System.IO.File.Exists(path))   
   {   
   StreamReader    reader=new    StreamReader(path,System.Text.Encoding.GetEncoding("GB2312"));   
    
   reader.ReadLine();   
   string    oneline;   
   while((oneline    =reader.ReadLine())    !=    null)   
   {   
   oneline=oneline.Trim();   
   if(oneline    !=    "")   
   {   
   string    []    ss=oneline.Split(",".ToCharArray());   
   if(!existedName(ss[0].ToString()))   
   {   
   StringBuilder    sb=new    StringBuilder();   
   sb.Append("insert    into    tab_adminuser    values(");   
   for(int    i=0;i<ss.Length;i++)   
   {   
   sb.Append("'"+ss[i]+"'"+",");   
    
   }   
   sb.Append("'3,'");   
   // sb.Remove(sb.ToString().LastIndexOf(","),1);   
    
   sb.Append(")");   
   // Response.Write(sb.ToString());   
   // Response.End();   
   dc.exeSQL(sb.ToString());   
   }   
    
    
   }   
   }   
   reader.Close();//记得要关闭输入输出流   
    
   }   
   else   
   {   
   Response.Write("<script    language='javascript'>alert('指定的文件不存在!');history.go(-1);</script>");   
   Response.End();   
   }   
   }   
    
   这个函数是读取文件


5楼

zhanqiangz(闲云野鹤)    正解,我做个和这个差不多的一个上传txt文件写如数据库的,也是这样处理。   
   streamreader    sr;   
   sr    =    File.OpenText(filename);   
   while    ((input=sr.ReadLine())!=null)     
   {   
             string[]    col=input.Split(',');   
             //这个时候col里面的东西应该有你需要的值了             
   }   
   这样循环一行行读,应该ok


6楼

  
   上传后,实例化一个streamreader,然后读取,最后保存倒一个数组中。   
   dim    reader    as    new    streamreader(file.opentext(filepath,accessmod))   
   dim    strContent    as    string=reader.readtoend()   
   dim    arryContent()as    string=strContent.split(",")   
   往下楼主应该明白了,数组里保存得是用逗号格开得   
   ,如果你一组数据是一行,那就用reader.readline(),应该是这个东西!然后循环保存。   
   数组数据做参数。


7楼

谢谢各位!   
   to:zhanqiangz(闲云野鹤)   
   ss[i]是否就是我需写入数据库的值?   
   可否简单注释一下最后一段代码,谢谢!   
    
   private    void    ReadFile(string    path)   
   {   
   if(System.IO.File.Exists(path))   
   {   
   StreamReader    reader=new    StreamReader(path,System.Text.Encoding.GetEncoding("GB2312"));   
    
   reader.ReadLine();   
   string    oneline;   
   while((oneline    =reader.ReadLine())    !=    null)   
   {   
   oneline=oneline.Trim();   
   if(oneline    !=    "")   
   {   
   string    []    ss=oneline.Split(",".ToCharArray());   
   if(!existedName(ss[0].ToString()))   
   {   
   StringBuilder    sb=new    StringBuilder();   
   sb.Append("insert    into    tab_adminuser    values(");   
   for(int    i=0;i<ss.Length;i++)   
   {   
   sb.Append("'"+ss[i]+"'"+",");   
    
   }   
   sb.Append("'3,'");   
   //sb.Remove(sb.ToString().LastIndexOf(","),1);   
    
   sb.Append(")");   
   //Response.Write(sb.ToString());   
   //Response.End();   
   dc.exeSQL(sb.ToString());   
   }   
    
    
   }   
   }   
   reader.Close();//记得要关闭输入输出流   
    
   }   
   else   
   {   
   Response.Write("<script    language='javascript'>alert('指定的文件不存在!');history.go(-1);</script>");   
   Response.End();   
   }   
   }


8楼

比较麻烦   
   用zhanqiangz(闲云野鹤)方法先把数据流读出来   
   然后,再根据您的        ,              /n        这两个符号把你的数据分开   
   然后保存入数据库


9楼

俺只会使用企业管理器导入


10楼

???那段代码是我贴出的,你问错人了吧?


11楼

呵呵!   
   Sorry,    realconnection(龙苗)   
   能注释一下吗?


12楼

private    void    ReadFile(string    path)   
   {   
   if(System.IO.File.Exists(path))//判断指定路径的文件是否存在   
   {   
   StreamReader    reader=new    StreamReader(path,System.Text.Encoding.GetEncoding("GB2312"));   
   //实例化一个StreamReader    ,并且指定编码方式,不然读取中文的时候会出现乱码   
   reader.ReadLine();//先读取一行(如果文件上方没有标题之类的东西,可不要这行代码)   
   string    oneline;   
   while((oneline    =reader.ReadLine())    !=    null)   
   {   
   oneline=oneline.Trim();   
   if(oneline    !=    "")   
   {   
   string    []    ss=oneline.Split(",".ToCharArray());//每行的数据以,隔开,保存在数组里   
   if(!existedName(ss[0].ToString()))    ss[0]是数组第一个元素,以此判断数据库中数据是否存在   
   {   
   StringBuilder    sb=new    StringBuilder();实例化StringBuilder     
   sb.Append("insert    into    tab_adminuser    values(");   
   for(int    i=0;i<ss.Length;i++)   
   {   
   sb.Append("'"+ss[i]+"'"+",");   
    
   }   
   sb.Append("'3,'");//以上几句是构造SQL的插入语句   
   //sb.Remove(sb.ToString().LastIndexOf(","),1);   
    
   sb.Append(")");   
   //Response.Write(sb.ToString());   
   //Response.End();   
   dc.exeSQL(sb.ToString());//执行SQL,DC是我的一个类,作用是完成数据库插入   
   }   
    
    
   }   
   }   
   reader.Close();//记得要关闭输入输出流   
    
   }   
   else   
   {   
   Response.Write("<script    language='javascript'>alert('指定的文件不存在!');history.go(-1);</script>");   
   Response.End();   
   }   
   }   
    
    
   呵呵,其实挺简单的,现在应该没什么不明白的吧   
  


13楼

先试试!

相关文章推荐

C# Window编程随记——读取.txt文件内容

C# Window编程随记——读取.txt文件内容要读取.txt文件的内容,代码结构可以按照步骤分为: 获取文件路径 判断路径是否存在 根据文件名称判断文件是否存在 读取文件内容,打印输出 1.获取文...

【C#】读取和写入本地txt文件

本次我们要使用C#的方式进行txt文件的读取和写入,在Unity的开发过程中同样适用,下面来具体实现吧。 创建文件的打开、关闭、读取、写入类:MyFileStream 要引入Syste...

C#生成PDF文档,读取TXT文件内容

using System.IO; using iTextSharp.text; using iTextSharp.text.pdf; //需要在项目里引用ICSharpCode.SharpZi...

c# 倒序读取txt文件

c# 倒序读取txt文件

C#控制台基础 file.readalltext使用相对路径与绝对路径去读取 与exe在同一目录下的txt文件

镇场诗:慈心积善融学习,技术誓为大家学。善心速造多好事,前人栽树后乘凉。我今于此写经验,愿见文者得启发。 ——————————————————————————————————————————————...

C#读取doc,pdf,ppt,TXT文件

C#读取doc,pdf,ppt文件 doc  pdf ppt与 txt之间的转换 : 组件的作用一般是将文件读出成字符格式,并不是单纯的转换文件名后缀,所以需要将读出的东西写入txt文件 。 ...

c# 读取txt文件的各种用法(csdn问题)

//行番号 int iLine = 0; //如何在textbox里显示txt文件的内容 string path = @...

初涉C#之读取txt文件并绘制坐标曲线图

这两天由于各种原因,不得不迫使自己学些傍身的东西。所以开始找一些编程语言来武装武装自己。C#没有C++那么复杂,但也相对于VB要高级一些,或许是个不错的选择呢。这两天看了下读取文本数据的资料,也在网上...
  • q2129
  • q2129
  • 2014年03月07日 15:15
  • 2942

C#读取TXT文件

C#读取TXT文件实现的一些总结: 1、Niit.txt 默认在 File_read\bin\Debug 文件下! 假如你不想程序运行报错,那么就在这个文件下建立 1)因为这里咱们是读取文本,...

C#读取Excel和txt文件数据并把数据分别一次性添加到Mysql数据库

using MySql.Data.MySqlClient; using System; using System.Collections.Generic; using System.Component...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#如何读取.TXT文件
举报原因:
原因补充:

(最多只允许输入30个字)