datagrid实际上绑定的是datatable的defaultview,你应该从这个dataview中查询

解决方案 »

  1.   

    dataGrid就是dataGrid,我觉的你的数据库知识很贫乏。
    好好补充一下自己吧
      

  2.   

    dataGrid是一个不可多得的垃圾极品!!!
    有componentone studio for .net 的注册码就好了~
      

  3.   

    首先设置该datatable.defaultview.sort属性为你单击列的排序情况,然后通过在该defaultview中取值。
    如:mySet.Tables["Orders"].DefaultView.Sort = "OrderId desc";
    textBox1.Text = mySet.Tables["Orders"].DefaultView [dataGrid1.CurrentCell.RowNumber]["OrderID"].ToString();
      

  4.   

    非非常常同意dzq138(钟添)的观点,DataGrid的确是一个彻彻底底的垃圾,我也是非常想要componentone studio for .net的注册码,有人有吗?
      

  5.   

    您回答的:“首先设置该datatable.defaultview.sort属性为你单击列的排序情况,然后通过在该defaultview中取值。
    如:mySet.Tables["Orders"].DefaultView.Sort = "OrderId desc";
    textBox1.Text = mySet.Tables["Orders"].DefaultView [dataGrid1.CurrentCell.RowNumber]["OrderID"].ToString(); “
    您回答的这个方法我是过了,可以使用,但是这样很麻烦阿,如果这样的话用户双击行头时 this.BindingContext[dataSet11,"职工"].Position 属性就不能使用了,我的程序调用纪录时都使用的这个属性,难道我的全部改掉吗?有没有更好的办法。
      

  6.   

    草帽,我昨天也想了这个问题。
      我感觉datagrid应该本身回维护经过排序了的数据。但是dataset本身数据是不会改变的,只有DATAVIEW才会把数据进行排序,我现在还不能得到DATAGRID本身维护的DATAVIEW,使用DATATABLE的DEFAULTVIEW没有作用。但我想这个思路应该是正确的,否则c#也太...有结果一定告诉你。
      

  7.   

    我已经解决这个问题了,我是用了如下语句string filter="日期='"+(DateTime.Parse(dataGrid1[dataGrid1.CurrentRowIndex,0].ToString())).ToShortDateString()+"' and 姓名='"+dataGrid1[dataGrid1.CurrentRowIndex,1].ToString()+"'";System.Data.DataRow myrow=dataSet11.Tables["总账"].Select(filter)[0];这样就没有必要响应事件了,不用给大家分了吧,呵呵