CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

各位大哥,问个datagrid问题

楼主jiffer(爱工作,更爱老婆)2006-03-09 15:47:08 在 .NET技术 / C# 提问

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

1 楼jiezhi(风满袖)回复于 2006-03-09 15:54:04 得分 20

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

2 楼zhangci226(三只熊熊)回复于 2006-03-09 16:02:25 得分 20

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

3 楼jiezhi(风满袖)回复于 2006-03-09 16:08:00 得分 0

比如:  
   
  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+"'");  
        //....  
   
  }  
  Top

4 楼chenxi6713(番茄)回复于 2006-03-09 16:10:20 得分 15

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

5 楼jiffer(爱工作,更爱老婆)回复于 2006-03-09 16:44:40 得分 0

赋值我已经搞定了,可是我点击一个修改按钮后,怎样来获得我这个表中的主键呢,我这个主键没有从数据库中取出,主要是我不想让他先是出来。Top

6 楼wht6411(weblover|要毕业啦!HUST)回复于 2006-03-09 16:58:09 得分 20

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

7 楼jiffer(爱工作,更爱老婆)回复于 2006-03-09 17:05:50 得分 0

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

8 楼canserly(没啥不好意思)回复于 2006-03-09 17:22:20 得分 20

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

9 楼mooddecode1980(心情解码)回复于 2006-03-09 17:41:52 得分 5

:)  
   
   
   
   
   
  -Top

相关问题

  • 请各位大哥帮忙解决DataGrid和Adodc的问题
  • 关于DataGrid绑定的问题,各位大哥,帮帮忙啊
  • 请问各位大哥??
  • 请问各位大哥!!!!
  • 各位大哥救命啊,DataGrid动态添加模板列的问题!
  • 各位大哥.....
  • 请教各位大哥-小问题
  • 各位大哥有问题请教
  • 请教各位大哥几个问题
  • 各位大哥一个菜问题

关键词

  • datagrid
  • 属性
  • 修改
  • ds
  • mydatatable
  • 键
  • 文本框
  • 主键
  • 点击
  • 添加

得分解答快速导航

  • 帖主:jiffer
  • jiezhi
  • zhangci226
  • chenxi6713
  • wht6411
  • canserly
  • mooddecode1980

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo