| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 827 人关注过本帖
标题:【求助】 控制内容的上下移动
只看楼主 加入收藏
狂砍程序
Rank: 1
等 级:新手上路
帖 子:127
专家分:0
注 册:2007-9-27
结帖率:100%
收藏
 问题点数:0 回复次数:5 
【求助】 控制内容的上下移动
    DataGridView满足一定条件时,怎么将DataGridView里面的两个行的位置调换一下,也可以说是调换数据,怎么做啊?比如第4行的数据到到5行,第5行的数据到第四行!对了,DataGridView和数据库链接着的,当然也要改数据库的行对换,怎么实现啊 ??!!!!!
搜索更多相关主题的帖子: 数据库 
2007-10-07 15:38
guoxhvip
Rank: 8Rank: 8
来 自:聖西羅南看臺
等 级:贵宾
威 望:44
帖 子:4052
专家分:135
注 册:2006-10-8
收藏
得分:0 

你DataGridView不是绑订到数据集上的吗 而且他们的数据是一致的,关键代码给你吧
object[] stu = new object[3];
stu[0] = ds.Tables["student"].Rows[4][0];
stu[1] = ds.Tables["student"].Rows[4][1];
stu[2] = ds.Tables["student"].Rows[4][2];
ds.Tables["student"].Rows.RemoveAt(4);
ds.Tables["student"].Rows.Add(stu);

我的数据库有3列,6条数据,这样就能实现LZ的要求,如果要持久化到数据库那用SqlDataAdapter的Update方法回写一次就是了 但是如果有主键 数据库好象会按主键自动排序


愛生活 && 愛編程
2007-10-08 00:01
狂砍程序
Rank: 1
等 级:新手上路
帖 子:127
专家分:0
注 册:2007-9-27
收藏
得分:0 
哦,我还是不懂啊,这是我问题的详细情况,再指点一下啊,不要忘了源代码啊!!
数据库信息是这样的 (注:编号的类型是数字的,并且没设置主键!)
编号(杂乱) 作者 歌曲名(不重复) 时间 (重复)
1 (重复) 张三 三毛 2:20 (杂乱)
3 李四 四毛 1:00
4 王五 五毛 5:00
8 王麻子 子毛 7:00
6 看齐 齐毛 5:00
3 冬瓜 瓜毛 6:00
正文开始了,我点击搜索按钮时,DataGridView显示这数据库中的信息,并按时间排序显示在DataGridView上!
问! 在DataGridView旁边有个下移按钮,意思是将DataGridView里面选中的数据和它下面一行的数据位置对调,也就是选中的数据下移一行,问!我如何来做啊? 关键是我对数据库还不是很熟,指点一下,不忘了代码哈
2007-10-08 03:13
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
.把数据取到DataTable,可以改变DataTabel中Rows的次序的.然后用SqlDataAdapter.Update()方法更新到数据库中.

飘过~~
2007-10-08 10:27
guoxhvip
Rank: 8Rank: 8
来 自:聖西羅南看臺
等 级:贵宾
威 望:44
帖 子:4052
专家分:135
注 册:2006-10-8
收藏
得分:0 

关键代码都给LZ了 你只需要变一点就OK了,希望LZ以后做题多查阅MSDN,对数据库和数据集的操作要做到相当熟练才行啊
我上面发给你的代码是直接把倒数第二行和最后一行交换,要想实现选哪行和他下面那行交换稍微改改就行啦,下面代码就是,在你下移按钮的Click事件里写
object[] obj = new object[ds.Tables["student"].Columns.Count];
int rowIndex = this.dataGridView1.CurrentRow.Index;
for (int i = 0; i < ds.Tables["student"].Columns.Count; i++)
obj[i] = ds.Tables["student"].Rows[rowIndex][i];
ds.Tables["student"].Rows.RemoveAt(rowIndex);
DataRow row = ds.Tables["student"].NewRow();
for (int i = 0; i < obj.Length; i++)
row[i] = obj[i];
ds.Tables["student"].Rows.InsertAt(row, rowIndex + 1);
其中ds.Tables["student"],这个student是我Fill时给的内存表名,LZ用你自己的,其他的基本都一样


愛生活 && 愛編程
2007-10-08 17:42
狂砍程序
Rank: 1
等 级:新手上路
帖 子:127
专家分:0
注 册:2007-9-27
收藏
得分:0 
哦,谢谢
2007-10-10 17:07
快速回复:【求助】 控制内容的上下移动
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031158 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved