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# 如何创建与读写txt文件

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

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

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

C# 对文本文件的几种读写方法总结

计算机在最初只支持ASCII编码,但是后来为了支持其他语言中的字符(比如汉字)以及一些特殊字符(比如€),就引入了Unicode字符集。基于Unicode字符集的编码方式有很多,比如UTF-7、UTF...
  • tchenjiant
  • tchenjiant
  • 2015年10月27日 09:15
  • 8607

c#如何读取txt文件内容

using System; using System.Collections; using System.Configuration; using System.Data; using Sys...
  • ztzi321
  • ztzi321
  • 2014年04月11日 20:59
  • 4289

C# 读取txt文件存储在String数组中

首先创建一个数组变量,用于记录数组 string[] Y_headname; 然后写读取文本文件的函数:  //读取文本文件转换为array          public void Y_Rea...
  • u011009362
  • u011009362
  • 2015年07月31日 14:50
  • 1825

C#读写txt文件的两种方法

由于项目需要,自己写了一个关于注册的Demo,用到了读写数据,因此没有过多的考虑,就之间放到数据库了,但在老师的提醒下,才发现这种方法弊端太多,因此,在网上找了一个读写txt文件的方法,自己研究了下,...
  • happylee6688
  • happylee6688
  • 2013年01月09日 09:41
  • 5447

C#读取txt文本文件的几种方式

1.按行读取:每次读取一行内容,即遇到回车键才会停止。 2
  • makenothing
  • makenothing
  • 2014年04月26日 00:50
  • 3106

c#读取txt文件并导入到数据库

这是一个ado.net和文件操作相结合的一个例子,比较经典哦。做的过程中出现了好多问题最终还是做出来了,学习的确需要别人的帮助,如果别人有问题了不管多忙都先学着去帮助别人,因为你要相信你并不是什么都会...
  • chenwill3
  • chenwill3
  • 2012年02月26日 22:28
  • 4143

c#文本文件读取并可控制读取行

private string 读文本() { String 保存路径 = @System.Environment.CurrentDirectory + "\\特...
  • xianfajushi
  • xianfajushi
  • 2012年06月17日 20:05
  • 4934

C# 向文本文件中逐行读写文件

C#读写文件的方法为StreamReader和StreanWriter 1、写文件,这个方法会一行一行地写数据,如果文件中有数据会在下一行追加 public static void Writ...
  • u010799162
  • u010799162
  • 2014年04月24日 20:00
  • 3616
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#如何读取.TXT文件
举报原因:
原因补充:

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