例如: 
        string cmdtxt1 = "server=(local);database=*****;Uid=**;Pwd=**";
        SqlConnection Con = new SqlConnection(cmdtxt1);
        Con.Open();
        SqlCommand Com = new SqlCommand("select 项目编号,项目名称,项目进度 from 项目表", Con);
        SqlDataReader dr = Com.ExecuteReader();
   说明一下,我的项目表内有三条数据。我要如何写,才能把这三条数据一一的读出来,分别付赋值给三个变量。。

解决方案 »

  1.   


    using(SqlDataReader sdr = Com.ExecuteReader(CommandBehavior.CloseConnection)){
    while(sdr.Read()){
    //...
    }
    }
      

  2.   

    遍历一下dr,将三列对应的值赋给datarow或数组就可以了嘛
      

  3.   

    好几种方法都可以1,楼上的While(sdr.read())
    2,将数据填充到dataset再用ds.Tables[0].Rows[i]["列名"]取值
    3,用存储过程返回值都是ado.net的基础操作
      

  4.   

     if (dr != null)
            {
                while (dr.Read())
                {
                    strContent = dr["项目进度"].ToString();
                }
            }
    我也是这样写的,我跟踪了一下,但是我的strContent值一直都没有变过 
      

  5.   


    IList<String> strContent = new List<String>();
    if (dr != null)
      {
      while (dr.Read())
      {
      strContent.Add(dr["项目进度"].ToString());
      }
      }
      

  6.   

      int i=0;
            string[] am;
            am = new string[3];
            if (dr != null)
            {
                while (dr.Read())
                {
                    strContent = dr["项目进度"].ToString();
                    am[i] = strContent;
                    i++;
                }
            }
            dr.Close();
    数据库的“项目进度”字段
                 90%
               80%
               70%
    三条数据我试了,我的am里面只有二条数据不知道为什么
      

  7.   

    int count=0;
    while (dr.Read())
    {
    strContent = dr["项目进度"].ToString();
    count++
    }
      

  8.   

    这个我知道的,我是想问,有没有类似dr.count的 呵呵!没有就算了,各位看一下,为什么我只能读到二条而不是三条数据呢
      

  9.   


    没有dr.count类似的东西,如果真的需要预先知道条数,就在select语句中加一列count(1)或者不要使用DataReader,而是使用DataSet接收数据后脱机处理,ds.Tables[0].Rows.Count。
      

  10.   

    read()方法肯定可以读出所有数据的,是你已经读了三条,却只看到了两条