大神帮忙看看,老是报"IndexOutOfRangeException"
下面的插入数据库的操作已经屏蔽掉了,就单单读取近16000条数据就报错,使用文本分隔 还是一样报错! 
int i = -1;
             using (StreamReader m_streamreader1 = new StreamReader(FilePath, Encoding.GetEncoding("GB2312")))
             {
                 i = m_streamreader1.ReadToEnd().Split('\n').Length - 1;//获取行数
             }
             string l_path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase);
             int num = Convert.ToInt32(Math.Ceiling(i / 10000.00));//0x1869F0x82C_
             for (int ai = 1; ai <= num; ai++)
             {
                 int flag = 0;
                 string _path = l_path + "\\0x1869F0x82C_" + ai.ToString() + ".txt";
                 File.Delete(_path);
                 FileStream fs = new FileStream(_path, FileMode.CreateNew, FileAccess.ReadWrite);
                 StreamWriter sw = new StreamWriter(fs, Encoding.GetEncoding("GB2312"));
                 StreamReader m_streamreader1 = new StreamReader(FilePath, Encoding.GetEncoding("GB2312"));
                 while (!m_streamreader1.EndOfStream)
                 {
                     if (flag == 0)
                     {
                         string str = m_streamreader1.ReadLine();
                         sw.WriteLine(str);
                     }
                     else if (flag <= ai * 10000 && flag > (ai - 1) * 10000)
                     {
                         string str = m_streamreader1.ReadLine();
                         sw.WriteLine(str);
                     }
                     else
                     {
                         if ((num - ai + 1) * 10000 < flag)
                         {
                             m_streamreader1.ReadToEnd();
                         }
                         else
                         {
                             m_streamreader1.ReadLine();
                         }
                     }
                     flag++;
                 }
                 m_streamreader1.Close();
                 sw.Close();
                 fs.Close();
             }
             DBHelper dbhelper = new DBHelper();
             if (IsDel == 1)
             {
                 dbhelper.IDM_Data("delete from GoodInfo");
             }
             progressBar1.Maximum = i;//设置最大长度值
             progressBar1.Value = 0;//设置当前值
             int fuck = 0;
             for (int bi = 1; bi <= num; bi++)
             {
                 if (fuck == 12047)
                 {
                     string asdfasdf = "";
                 }
                 string _path = l_path + "\\0x1869F0x82C_" + bi.ToString() + ".txt";
                 FileStream fs = new FileStream(_path, FileMode.Open, FileAccess.Read);
                 StreamReader m_streamreader = new StreamReader(fs, Encoding.GetEncoding("GB2312"));
                 m_streamreader.BaseStream.Seek(0, SeekOrigin.Begin);
                 int k = 0;
                 int columnCount = 0;
                 SqlCeConnection con = new SqlCeConnection(dbhelper.CONN_STRING);
                 try
                 {
                     while (!m_streamreader.EndOfStream)