ds.Tables[i].Rows[i][columnName].ToString()

解决方案 »

  1.   

    恩,取值的问题解决了,可是可是“如果i是任意选中的一行,要怎么表示呢?”
    (^^?)T.T
      

  2.   

    就是我在窗口的表中选中了一条记录放进DataSet,然后传递的是一个DataSet,我现在要从DataSet中取这条记录,要怎么表示呢Row的index呢?
      

  3.   

    Can you let me see 你的代码?
      

  4.   

    还有。要怎么表示DataSet中Row的数目呢
      

  5.   

    public static bool UpdateUser(DataSet UserSet)
            {
                //如果用户名不为空
                string userName = UserSet.Tables[0].Rows[0][POS.Common.POSParameters.USER_NAME].ToString();
                if (userName != null)
                {
                    //从用户列表行中得到用户信息
                    int i = POS.DataAccess.UserData.selectUserByName(userName);
                    //从数据库中查出是否有相同的用户名
                    if (i == 0)
                    {
                        //如果没有则修改后返回true
                        POS.DataAccess.UserData.saveUser(UserSet);
                        return true;
                    }
                    //如果有则返回false
                    return false;
                }
                return false;
            }
    那个Rows[0]是我随便加的,应该是选中的行的索引。可是我不知道怎么表示选中的行
      

  6.   

    UpdateUser新加个参数,把选中行索引传进来
      

  7.   

    public static bool UpdateUser(DataSet UserSet)
            {
                for (int k; k < UserSet.Tables[0].Rows.Count;k++)
                {
                    //如果用户名不为空
                    string userName = UserSet.Tables[0].Rows[k][POS.Common.POSParameters.USER_NAME].ToString();
                    if (userName != null)
                    {
                        //从用户列表行中得到用户信息
                        int i = POS.DataAccess.UserData.selectUserByName(userName);
                        //从数据库中查出是否有相同的用户名
                        if (i == 0)
                        {
                            //如果没有则修改后返回true
                            POS.DataAccess.UserData.saveUser(UserSet);
                            return true;
                        }
                        //如果有则返回false
                        return false;
                    }
                }
            }你看看是这个意思不
      

  8.   

    这个是循环你的dataset,遍历你选择的列的全部数据,也是你说的任意行,如果你想要点中某一行的时候进行判断的话,你需要你个控件记住你选中的数据的索引并传到这个函数里
      

  9.   

    ds.Tables[i].Rows[i][j].ToString()j在外面循环就可以读取了!
      

  10.   


    to  AllenCpp(AllenCpp)
    ds.Tables[i].Rows[i][j].ToString()
    中为什么是"Tables[i]"呢,你的ds中能放很多表吗?
      

  11.   

    继续提问:
    怎样在窗口列表中删除了一行以后选中行指向下一行?
    userDs.Tables[0].Rows[0]=(DataRow)dataGridView1.SelectedRows[0];
            
                POS.Business.UserBusiness.DeleteUser(userDs);
      

  12.   

    如果是一个表的话就是,ds.Tables[0].Rows[i][columnName].ToString()如果表多的话,才写ds.Tables[i].Rows[i][columnName].ToString()其中i是对应的数据表。ds.Tables[i].Rows.count是数据的数目。
      

  13.   

    amandag(高歌) 说得好清楚了