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楼

先试试!

ODBC文件DSN 的结构

                       ODBC文件DSN 的小秘密1. 用附件带的WORDPAD文本编辑器,  建立一后缀名为 .DSN的文件,  格式如下, 然后按文本格式存起来:注意: 格...
  • greenlea
  • greenlea
  • 2000-12-14 18:44:00
  • 972

c#读取txt文件并生成一张表

(1)弹出选择路径  从工具中拖出OpenFileDialog 在相应的点击事件中补一下两句代码 OpenFileDialog OpenFile = new OpenFileDialog();...
  • echoerror
  • echoerror
  • 2017-01-12 10:59:18
  • 358

c#如何读取txt文件内容

using System; using System.Collections; using System.Configuration; using System.Data; using Sys...
  • ztzi321
  • ztzi321
  • 2014-04-11 20:59:52
  • 4612

C#Winform读取txt文件

private void btnRead_Click(object sender, EventArgs e) { string filename = this....
  • pp_fzp
  • pp_fzp
  • 2016-02-24 23:03:53
  • 1629

C# 如何创建与读写txt文件

// 判断文件是否存在,不存在则创建,否则读取值显示到窗体             if (!File.Exists("F:\\TestTxt.txt"))             {     ...
  • fuzhenglai
  • fuzhenglai
  • 2016-11-14 13:49:15
  • 20321

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

//行番号 int iLine = 0; //如何在textbox里显示txt文件的内容 string path = @...
  • kongwei521
  • kongwei521
  • 2011-05-31 11:43:00
  • 1478

c# 读取txt并绘图

现在又一个txt文件,里面存了几列采集到的数据,如下所示其中,我想读取此文本的数据到picturebox里,横坐标为时间,纵坐标为s(信号),分别显示两条曲线s1和s2(其中,S1x和S1y分别为S1...
  • cl52155
  • cl52155
  • 2010-11-11 21:46:00
  • 722

c# 读取txt文件中特定内容后的文字

c# 读取txt文件中特定内容后的文字      新建txt文件,实现C#将里面的内容按照特殊格式与特殊符号分割并存入数组中,再进行读取,读取特定内容后面的文字。     首先定义: ...
  • laozhuxinlu
  • laozhuxinlu
  • 2015-11-20 23:39:49
  • 5755

【转】C#如何读取txt文件中每一行每一个数据

转自:http://zhidao.baidu.com/link?url=u17qslbQl_jRMGCbVas_TH-ctf1gH0D54P9GMl8T6zO04ZYnjf2UuBQpv9wchsvi...
  • zjwen2007
  • zjwen2007
  • 2015-01-29 20:25:39
  • 5218

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

本次我们要使用C#的方式进行txt文件的读取和写入,在Unity的开发过程中同样适用,下面来具体实现吧。 创建文件的打开、关闭、读取、写入类:MyFileStream 要引入Syste...
  • yangyy753
  • yangyy753
  • 2015-08-31 00:02:18
  • 3387
收藏助手
不良信息举报
您举报文章:C#如何读取.TXT文件
举报原因:
原因补充:

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