winform读取CSV文件数据丢失,
代码如下:
public static DataTable OpenCSV(string fileName)
        {
            DataTable dt = new DataTable();
            //FileStream fs = new FileStream(fileName, System.IO.FileMode.Open, System.IO.FileAccess.Read);
            StreamReader sr = new StreamReader(fileName, System.Text.Encoding.Default);
            
            //记录每次读取的一行记录            //string strLine = "";            //记录每行记录中的各字段内容
            string[] aryLine;
            //标示列数
            int columnCount = 0;
            //标示是否是读取的第一行
            bool IsFirst = true;
            string newTitle =string.Empty;
            string[] arrayTitle=new string[]{};
            string[] newArray = new string[] { };
            bool isOk = true;
            //Main(fileName);
            //逐行读取CSV中的数据
            while (isOk)
            {
                StringBuilder strLine = new StringBuilder();
                strLine.Append(sr.ReadLine());
//只要描述信息里的数据多了就丢失                if (strLine.Length <= 0)
                    break;
                aryLine = strLine.ToString().Split('\t');
                if (IsFirst == true)
                {
                    IsFirst = false;
                    columnCount = aryLine.Length;
                    //创建列
                    //DataColumn dc0 = new DataColumn("状态");
                    //dt.Columns.Add(dc0);
                    newTitle = strLine.ToString();
                    newArray = aryLine;
                    DataColumn dc0 = new DataColumn("状态");
                    dt.Columns.Add(dc0);
                    arrayTitle = Get_Csv_Head();
                    for (int i = 0; i < arrayTitle.Length; i++) {
                        DataColumn dc = new DataColumn(arrayTitle[i]);
                        dt.Columns.Add(dc);
                    }
                }
                else
                {
                    DataRow dr = dt.NewRow();
                    dr[0] = "未上传";
                    for (int j = 0; j < arrayTitle.Length; j++) {
                        int state = ReturnIndex(newArray, arrayTitle[j].ToString());
                        if (state != -1)
                        {
                            if (arrayTitle[j].ToString() == "宝贝描述")
                                dr[j+1] = aryLine[state].ToString().Replace("\"", "").Replace(",", "");
                            else
                                dr[j + 1] = aryLine[state].ToString().Replace("\"", "").Replace(",", "");
                        }
                        else {
                            dr[j] = "";
                        }
                    }
                        dt.Rows.Add(dr);
                }
            }            sr.Close();
            //fs.Close();
            return dt;
        }