在Form中我添加了一个datagrid,现在我想实现一个功能,就是点击datagrid中的某一列,然后把它相应的数据赋给底下的文本框中,在文本框中修改完以后可以提交修改。请各位指点一下。

解决方案 »

  1.   

    很简单.你可以先得到其点击的行号,然后对应到绑定的DataTable,取得相应行的各个字段的内容----如果这个Datagrid没有排序的话.更保险的做法,得到当前行中id(主键)行的cell的值,然后根据此值到绑定的DataTable中Select到行...
      

  2.   

    显示在textbox:
    int i= this.dataGrid1.CurrentRowIndex;
    this.TextBox1.Text = this.ds.Tables["表名"].Rows[i]["字段名"].ToString();修改:
    this.ds.Tables["表名"].Rows[i]["字段名"]="新值";更新:
    ad.Update(ds,"表名");
      

  3.   

    比如:private void myDataGrid_CurrentCellChanged(object sender, System.EventArgs e)
    {
       //设置主键                           
       if(myDataTable.PrimaryKey == null || myDataTable.PrimaryKey.Length == 0)
    myDataTable.PrimaryKey = new DataColumn[]{... // your id column};
        //得到用户当前点击行的主键字段的值
       string s = myDataGrid[myDataGrid.CurrentRowIndex,myDataTable.Columns.IndexOf(主键名)]).ToString();
       //构造过滤条件,调用myDataTable.Select方法得到对应的行,然后把它相应的数据赋给底下的文本框中
       myDataTable.Select("id='"+s+"'");
       //....}
      

  4.   

    就是点击datagrid中的某一列?
    是不是某一行呀?
    你最好是把更新需要用到的值放到datagrid中,这样更保险,如果不想让别人看到,可以将该行设置宽度设置为0。
      

  5.   


    赋值我已经搞定了,可是我点击一个修改按钮后,怎样来获得我这个表中的主键呢,我这个主键没有从数据库中取出,主要是我不想让他先是出来。你可以把主键显示在某一列中,然后在datagrid的属性里面设置这一列为不可见就可以了.然后再获取主键就好操作了.
      

  6.   

    我的datagrid中的列是直接从Sql语句中固定的,比如sql="select aa,bb,cc from table"
    我并没有在datagrid属性中添加列,不知道datagrid的哪个属性可以添加列,又怎样才能让他不自动绑定呢?我原来是写.net web程序的,在web的datagrid中还可以在属性生成器中添加列,可是到了winform中就不知道了,感觉到有很大的区别的。
      

  7.   

    DataColumn 列= null;
    //B_LINECODE
    列= new DataColumn();
    列.DataType = System.Type.GetType ("System.String");
    列.ColumnName = "B_LINECODE";
    表.Columns.Add(列);