可能是mystring[]超界了,跟踪看一下就知道了.你的mystring是怎么定义的呢?
mystring的长度要大于等于reader读取的字段个数才行

解决方案 »

  1.   

    可是,关键在于无论我将数组长度定义为多少,都会报这个错.
    比如string[] mystring = new string[100];
    而数据库中的那一列实际上只有3行啊.
      

  2.   

    while(reader.Read())
    {
    mystring[i] = reader.GetString(1);Console.WriteLine("{0}",mystring[i]);
    i += 1;
    }
      

  3.   

    ^_^,dxhdxh2k(dxhdxh)指出了问题所在,i+=1早了一点,当然有可能出现下标溢出了。也可改为:
    Console.WriteLine("{0}",mystring[i++]);
      

  4.   

    试试这个
    foreach (DataColumn myDataColum in myDataTable.Columns)//
    {
        ......
    }
      

  5.   

    while(reader.Read())
    {
    mystring[i] = reader.GetString(1);
    i += 1;
    Console.WriteLine("{0}",mystring[i]);//这个地方错了吧
    }在第一次其实打印的是第二行记录,所以最后mystring[i]是最后一条记录再加1
    这样写应该可以吧while(reader.Read())
    {
    mystring[i] = reader.GetString(1);
    Console.WriteLine("{0}",mystring[i]);
    i += 1;
    }
    或者直接
    while(reader.Read())
    {
    Console.WriteLine("{0}",reader.GetString(1));}