C# 按行读取txt文本内容导入数据库SQL(1)第二行数据就从第二列插入(2)索引超出了数组界限?

都是按行读取txt内容,(因为有两行数据和其他的不一样)用正则分析出来,赋给一个字符串数组,
将一个字符串数组的每个值一次写入数据库行的对应列。一行读取完成。
可是却显示,索引超出了数组界限,数组个数和行对应的
。将读取出来的数据显示在textBox中是正确的,
但是奇怪的是也确实是导入进去了,数据库中表格有了数据
最终结果似乎对的,除了第二行第一列没有数据。谢谢,刚入手,第一个程序!

数组的索引操作肯定有问题,应该是在存储txt内容的时候,索引值给的不对,最好能贴出代码分析

string line1Date = readerChinses.ReadLine();
string[] text = line1Date.Split(' ');
DataRow row1 = stockDate.NewRow();
row1[0] = text[0];
row1[1] = text[1];
row1[2] = text[2];
row1[3] = text[3];
stockDate.Rows.Add(row1);//读第一行的值,插入到数据库
string line2Date = readerChinses.ReadLine();
string[] text2 = Regex.Split(line2Date, "\s{2,}", RegexOptions.IgnoreCase);
DataRow row2 = stockDate.NewRow();
row2[0] = text2[0];
row2[1] = text2[1];
row2[2] = text2[2];
row2[3] = text2[3];
row2[4] = text2[4];
row2[5] = text2[5];
row2[6] = text2[6];
stockDate.Rows.Add(row2);
sqlDa.Update(dateSet, "stockDateSet");//第二行,
出现的结果是第二行,从第二列插入的,这样,最后一个值,就没了。后面的数据格式一样,我用的是循环。就先解决我第一个问题就是了!谢谢

这个要看你的数据,下断点调试text text2和row1 row2的下标都有可能越界。

你所描述的意思就是说在处理第二行的时候
row2[0]没有存储到值
而实际是这样的一个存储方式:
row2[1]=text2[0];
row2[2]=text2[1];
row2[3]=text2[2];
row2[4]=text2[3];
row2[5]=text2[4];
row2[6]=text2[5];
row2[7]=text2[6];//这个row2[7]导致了数组索引超出了?

先判断一下text2的length,然后再循环添加到row2数组,而不是直接这样1-7赋值。

我调试了,text2的内容是第一个数据是一个“”,好像是空格,然后后面的是正确的数据,
我就直接从下标是1-7赋值。程序已经完成了,这些细节我也就没管了。