本帖最后由 ellaxy 于 2011-07-17 16:07:53 编辑

解决方案 »

  1.   

                        for (int i = 0; i < sdr.FieldCount; i++)
                        {
                            //读出数据来,   自动生成列标头 
                            ColumnHeader ch = new ColumnHeader();
                            ch.Text = sdr.GetName(i).ToString();
                            this.lvFile.Columns.Add(ch);
                            //循环显示列 
                            ListViewItem lvi = new ListViewItem();
    MessageBox.Show(sdr.GetValue(i).ToString());//检查从数据库取值,两个字段都取到值
                            lvi.SubItems[i].Text = sdr.GetValue(i).ToString();//catch显示这行出错
                            this.lvFile.Items.Add(lvi);
                        }=>                    for (int i = 0; i < sdr.FieldCount; i++)
                        {
                            //读出数据来,   自动生成列标头 
                            ColumnHeader ch = new ColumnHeader();
                            ch.Text = sdr.GetName(i).ToString();
                            this.lvFile.Columns.Add(ch);
                        }
                        while (sdr.read())
                        {
                        for (int i = 0; i < sdr.FieldCount; i++)
                        {
                            //循环显示列 
                            ListViewItem lvi = new ListViewItem();
    MessageBox.Show(sdr.GetValue(i).ToString());//检查从数据库取值,两个字段都取到值
                            lvi.SubItems[i].Text = sdr[i].ToString();//catch显示这行出错
                            this.lvFile.Items.Add(lvi);
                        }
                        }
      

  2.   

    按照1楼的改后,还是出现同样的错误,指示在lv.Subitems[i].Text = sdr[i].ToString
      

  3.   

    lvi.SubItems[i].Text 的问题?
      

  4.   

    是的,就是lvi.SubItems[i].text这个i赋什么值都不行,不管是0还是1