zoukankan      html  css  js  c++  java
  • c#读取csv文件

    读取csv文件网上有很多例子  但是都是相当长的一大串  并且  没 有 注 释

    /// <summary>
            /// 添加数据到数据库
            /// </summary>
            public void insert(string aaa)
            {
    
                FileStream fs = new FileStream(path.SelectedPath + @"pc" + aaa + "-设备.csv", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);//选择文件夹名字
    
                StreamReader sr = new StreamReader(fs, System.Text.Encoding.Default);//选择读取格式 
    
                StringBuilder sb = new StringBuilder(); //一个可变的字符序列
                string excle = "";
                while (!sr.EndOfStream)//一直读取到最后一条
                {
                    sb.AppendLine(sr.ReadLine());
    
                    excle = sb.ToString();//excle就是这个文件完整的一条字符串  用split 分割就好了
                }
    
                using (BoardDataContext linquser = new BoardDataContext())
                {
                    //linquser.ExecuteCommand("TRUNCATE TABLE Board");//清空这个表  
    
    
                    linquser.ExecuteCommand("DELETE FROM Board WHERE [BoardNumber]=" + aaa);//删除数据库中已有的数据
    
    
    
    
    
    
                    //string a = File.ReadAllText(path.SelectedPath + @"user.csv", Encoding.Default);//读数据
    
                    string[] rows = new string[] { };//每一行
                    string[] colum = new string[] { };//每个内容
    
                    rows = excle.Split(Environment.NewLine.ToCharArray());//分割每一行  这是分割换行
                    for (int i = 1; i < rows.Length; i++)//从一开始 去掉第一行  第一行是标题 
                    {
                        if (rows[i] != "") //中间会有很多""空字符串 这里要去掉
                        {
                            colum = rows[i].Split(',');//然后在分割每一列
    
                            if (colum[0] != "")
                            {
                                Board u = new Board();
                                u.Data = colum[0];
                                u.Class = colum[1];
                                u.BoardNumber = colum[2];
                                u.PatternNumber = colum[3];
                                u.GoodNumber = colum[4];
                                u.BadNumber = colum[5];
                                u.Yield = colum[6];
                                u.StartTime = colum[7];
                                u.EndTime = colum[8];
                                u.TestTime = colum[9];
                                u.WaitTime = colum[10];
                                u.OverkapNumber = colum[11];
                                u.Overkapyield = colum[12];
    
                                linquser.Board.InsertOnSubmit(u);//添加数据到数据库就可以了
                                linquser.SubmitChanges();
                            }
    
                        }
                    }
    
    
    
    
    
    
                }
    
            }

      

    网上也有别的读取方式  但是会影响到csv文件打开运行时   程序不能执行这个方法  

    在一个就是 linq 的用法 本来想先查出这个集合 然后在删除 

    结果 偶然间从一个大神那 看到这种用法 

    //linquser.ExecuteCommand("TRUNCATE TABLE Board");//清空这个表
    linquser.ExecuteCommand("DELETE FROM Board WHERE [BoardNumber]=" + aaa);//删除数据库中已有的数据

    括号里面可以直接加sql语句 那就很直接了

  • 相关阅读:
    linux取随机数shell版本
    PWD简介与妙用(一个免费、随时可用的Docker实验室)
    MySQL基础教程——mysql脚本编写
    MySQL基础教程——创建数据库并插入数据
    MySQL——数据库和 SQL 概念&&MySQL的安装
    卷积计算
    卷积及其应用
    SG函数入门&&HDU 1848
    ACM博弈论基础
    Aho-Corasick自动机
  • 原文地址:https://www.cnblogs.com/v587yy/p/7697971.html
Copyright © 2011-2022 走看看