string constr = "Data Source=WWW-BD3E31B26BD\\local;Initial Catalog=UI;Integrated Security=True";//连接数据库          
            SqlConnection connect = new SqlConnection(constr);//连接服务器
            connect.Open();
            string selectStr = "select Uname from userinfo";
            SqlCommand cmd = new SqlCommand(selectStr, connect);
            SqlDataReader dr = cmd.ExecuteReader();
            if (dr.Read())
            {
                this.label10.Text = dr[dr.FieldCount].ToString();
            }
            connect.Close();
结果运行提示 索引超出了数组界限。不知什么原因

解决方案 »

  1.   

     this.label10.Text = dr[dr.FieldCount-1].ToString(); 
      

  2.   


    string selectStr = "select Uname from userinfo"; //里面没有FieldCount,我想你的FieldCount也是数据库里面的字段吧
    string selectStr = "select Uname,FieldCount from userinfo";//试试
      

  3.   

    FieldCount是datareader的一个属性,意思是datareader保存数据的总条数
      

  4.   

    FieldCount应该是列数,比如表里有几个字段就是几
    你这里说的datareader保存数据的总条数好像是recordcount
      

  5.   

    dr.FieldCount是列数
    读出来的数据流是从0列开始的
    应dr.FieldCount-1
      

  6.   

    你的程序有问题啊,改成如下试下:string constr = "Data Source=WWW-BD3E31B26BD\\local;Initial Catalog=UI;Integrated Security=True";//连接数据库          
                SqlConnection connect = new SqlConnection(constr);//连接服务器 
                connect.Open(); 
                string selectStr = "select Uname from userinfo"; 
                SqlCommand cmd = new SqlCommand(selectStr, connect); 
                SqlDataReader dr = cmd.ExecuteReader(); 
                
                while (dr.Read()) 
                { 
                    
                 this.label10.Text = dr["Uname"].ToString(); 
                } 
                connect.Close();