各位高手请赐教:
我做了一个桌面程序(进销存),我想在库存窗体(用datagrid控件)中选择多行进行操作(如一次性删除多行),请问怎么实现?请各位写详细一点,先谢谢了,我是菜鸟

解决方案 »

  1.   

    zxcayumi(◎_◎) 请问:
    我在遍历的时候不知道怎么识别被选中行啊?
      

  2.   

    if(dataGrid1.IsSelected(行索引) == true)//说明此行被选中
    {
        存主键的带码 ;
    }
      

  3.   

    zxcayumi(◎_◎) :
    帮人帮到底,遍历我都搞不定。能不能写齐了。
      

  4.   

    我有个变相的方法!说出来看可不可以!
    就是在每列后加上一个选择项(checkbox选项)!
    选中就可以删掉!
    未选就不可以!
    呵呵!自己想的方法!
    不知道可以吗!
    顶!
      

  5.   

    我有个变相的方法!说出来看可不可以!
    就是在每列后加上一个选择项(checkbox选项)!
    选中就可以删掉!
    ====================我倒觉得这个方法很好,不过这里应该是在每行后面加一列,里面就放一个CheckBox,值(value)就是这行记录的主键值(比如ID),点击删除则进行处理,遍历CheckBox,如果被选中,则把value值记录,格式就是
    string allValues="";
    foreach(遍历CheckBox)
    if(是否选中)
      allValues += (","+选中的CheckBox.value);
    if(allValues!="")
      allValues = allValues.Substring(1);//去掉第一个,逗号.然后定义一个Sql语句string Delstr = "delete from [(你的表名)] where (表的主键) in ("+allValues+")";
    SqlCommand一下就可以了,注意这里的SQL语句一定要用Text直接执行而不能用存储过程或赋变量的形式。最后要说的是:没写过WinForm的程序,这只是一个思路,可不可行就不知道了~~不好意思~~
      

  6.   

    int j = 0 ;
    for(int i=0;i<行数;i++)
    {
        if(dataGrid1.IsSelected(i) == true)
        {
            a[j] = 第i行的主键 ;//a[]为存主键的数组,或集合.
            j++ ;
        }
    }
    然后根据主键删除对应的行就OK了
      

  7.   

    for(int i=0;i<行数;i++)
    我想这样写。
    但不知道求datagrid的行数啊.
    在Web中可是datagrid1.Items.Count;但这里却没有。烦
      

  8.   

    你是用数据库的数据和dataGrid绑定的吗?
    是的话可以读取dataTable中的行数代替dataGrid的行数.
      

  9.   

    我是用数据库的数据和dataGrid绑定的
    哦!!是一个办法。 试试
    但这位兄台,我就不理解微软为什么要这么做
    Web中的datagrid控件有Items属性,
    但在winform中为什么就不要它,难道真的没有其它办法可以在datagrid中求出它的行数。
      

  10.   

    dv=(DataView)datagrid.DataSource
    dv.Table.Rows.Count就是行数.
      

  11.   

    fsyxgq(范)兄的方法是对的。但是各位老大救命啊,我对datagrid这个控件真是一无所知。
    zxcayumi(◎_◎)兄的:        a[j] = 第i行的主键 ;//a[]为存主键的数组,或集合.我又不知道怎么弄了!!是查询数据库吗?如果是,那么反回主键的条件是什么?(select 主键  from T_table where ???=???
      

  12.   

    dataGrid中的某列不是主键吗?读取列值不就行了吗?
      

  13.   

    实际上关于DataGrid微软已承认自己设计失败了,所以在2.0中推出了DataGridView,但为了顾全颜面,保留了DataGrid
      

  14.   

    在datgrid里加一列模板列 
    模板列里加个checkbox 
    遍历datagrid的items
    检查checkbox的checked属性
      

  15.   

    if(dataGrid1.IsSelected(行索引) == true)//说明此行被选中你这个东西不行吧datagrid一次只能有一项被selected
      

  16.   

    For i As Integer = 0 To DataGrid1.Items.Count - 1
    If CType(DataGrid1.Items(i).Cells(0).FindControl("CheckBox1"), System.Web.UI.WebControls.CheckBox).Checked = True And DropDownList1.SelectedIndex <> -1 And DropDownList1.SelectedIndex <> 0 Then
    ……
    ……
    ……
    End If
    Next