string sql = "select * from userinfo where address='" + input + "'";
            SqlCommand cmd1 = new SqlCommand(sql, conn);
            SqlDataReader dr = cmd1.ExecuteReader();
            dr [0] 得到的为什么只是一个string啊,为什么不是一行数据呢?
           得到一行数据怎么写?

解决方案 »

  1.   

    dr是一行的集合
    dr[0]是这行的第0+1个元素
      

  2.   

    string sql = "select * from userinfo where address='" + input + "'";
    SqlCommand cmd1 = new SqlCommand(sql, conn);
    SqlDataReader dr = cmd1.ExecuteReader(); 
    while(dr.Read())
    {
        for(int i=0;i<dr.FieldCount;i++)
        {
            MessageBox.Show(dr[i].ToString());
        }
    }
      

  3.   

    dr是一行的集合,dr[0]是其中一列的数据,你想获得整行的数据就用
    List<string> list=new List<string>();
    while(dr.Read()) 

        for(int i=0;i <dr.FieldCount;i++) 
        { 
            list.Add(dr[i].ToString()); 
        } 
    }
    list装载着这行的每列数据
      

  4.   

    SqlDataReader dr = cmd1.ExecuteReader(); 
    while(dr.Read())  //遍历所有行

        for(int i=0;i <dr.FieldCount;i++) 
        { 
            MessageBox.Show(dr[i].ToString()); //这里的dr就是一行[]里面的是列索引,从0开始,dr[0]表示这行的第一列,依此类推
        } 
    }
      

  5.   

     string sql = "select * from userinfo where address='" + input + "'"; 
     SqlCommand cmd1 = new SqlCommand(sql, conn); 
     SqlDataReader dr = cmd1.ExecuteReader(); 
    while(dr.Read())  //遍历所有行,看执行sql语句后,是否有返回值 

        for(int i=0;i <dr.FieldCount;i++) 
        { 
            MessageBox.Show(dr[i].ToString()); 
        } 
    }
      

  6.   

    本帖最后由 amandag 于 2009-02-11 21:10:00 编辑
      

  7.   

    上面都回答了,dr[0]是取得datareader的当前行的第一列数据,取各个列是dr[1],dr[2].....