为什么我循环遍历数据时取不到recevid, recevid = dr["receiverID"].ToString();这句好像没执行
            Poucan.BLL.ReceiverAddress receivebll = new Poucan.BLL.ReceiverAddress();
            Poucan.Model.CustomerShopping model2 = new Poucan.Model.CustomerShopping();
            DataSet ds = new DataSet();
            ds = receivebll.CustomerShopping(PageProduct.getCustomerName());
            string recevid = "";
            if (ds.Tables[0].Columns.Count > 0)
            {
                foreach (DataRow dr in ds.Tables[0].Rows)
                {                   
                     recevid = dr["receiverID"].ToString();
                   
                }
            }
            model2.receiverID = recevid;CustomerShopping方法:
 public DataSet CustomerShopping(string customer)
        {
            SqlParameter[] parameters = {
                    new SqlParameter("@customer", SqlDbType.VarChar,50),            
                    };
            parameters[0].Value = customer;
            return DbHelperSQL.RunProcedure("prd_GetRecevierID", parameters, "ds");
        }
sql语句:select * from tb_receiver where ordercode in(select  top 1 ordercode from tb_order where customer=@customer order by created desc)

解决方案 »

  1.   

    添加个gridview,绑定ds看有没有数据
      

  2.   

    ds = receivebll.CustomerShopping(PageProduct.getCustomerName()); 有问题
      

  3.   

    调试了很多遍了,每次调到foreach,就不执行recevid = dr["receiverID"].ToString();这个,然后直接跳到model2.receiverID = recevid;这一步
      

  4.   

    小妹,你写错了,这样就对了。 
    foreach (DataRowView drv in ds.Tables[0].DefaultView)
      {   
      recevid = drv["receiverID"].ToString();
        
      }
      

  5.   

    if (ds.Tables[0].Columns.Count > 0)
      {
      foreach (DataRow dr in ds.Tables[0].Rows)
      {   
      recevid = dr["receiverID"].ToString();
        
      }
      }你的ds数据是几行?  怎么遍历ds重复赋值的呀
      

  6.   

    if (ds.Tables[0].Rows.Count > 0)
      

  7.   

    那就说明你的ds没有数据行,当然就跳下面一行执行了撒。
    receivebll.CustomerShopping(PageProduct.getCustomerName()); 没有取到值,你说没问题你要调试肯定是没有数据的。
      

  8.   

    if (ds.Tables[0].Columns.Count > 0)

    if (ds.Tables.Columns.Count > 0)
      

  9.   

    错了
    改成if (ds.Tables.Rows.Count > 0)
      

  10.   

    上面的方法都试过了,不行的,就是获取不到 recevid = dr["receiverID"].ToString();这个
      

  11.   

    那就说明你的那个ds.Tables[0],表中没有任何的行
      

  12.   

    ds.Tables[0].Columns.Count  改成 ds.Tables[0].Rows.Count 试试 ,告诉我这个count是多少?
      

  13.   


    count是0,没数据. 当然不能recevid = dr["receiverID"].ToString();