C_Sharp 板


LINE

我是透过将资料写入DataTable再贴上DataGridView方式来呈现表单 现在想要修改DataTable内的某row的资料 目前想到2个方法来实现此目的... 方法1(请见下面程式码): 以最基本的一列一列搜寻 在column搜寻到某值时 再修改此row後面的内容 但觉得这个方法好像很笨很不优 当资讯量大时不知会不会造成运算过久... 方法2(请见下面程式码): 想要透过DataTable.Select函数(感觉会比方法1来的快) 但目前卡在当已经以DataTable.Select函数找到某column内有要寻找的值时 却不知该如何获得该row的位置(RowIndex) 以致无法修改该row的内容 (还是根本不该透过DataTable.Select来选择) 以下为我目前的程式码: DataTable dt = new DataTable(); //建立DataTable private void Form1_Load(object sender, EventArgs e) { //设定有几行 与各行标题 dt.Columns.Add("No", Type.GetType("System.Decimal")); dt.Columns.Add("Student"); dt.Columns.Add("Sex"); //直接设定各列内容 dt.Rows.Add("1", "LBJ", "male"); dt.Rows.Add("2", "Zoe", "female"); dt.Rows.Add("3", "Hughes", "male"); dataGridView1.DataSource = dt; //将内容贴入DGV显示出来 } //方法1: 以传统方式判断RowIndex 再取代内值 private void buttonReplaceNormal_Click(object sender, EventArgs e) { for (int i = 0; i <= dt.Rows.Count - 1; i++) { //当column[0]搜寻到"1"这个字时 取代其後面内容 if (dt.Rows[i][0].ToString() == "1") { dt.Rows[i][1] = "Anna"; dt.Rows[i][2] = "Female"; } } dataGridView1.DataSource = dt;//将内容贴入DGV显示出来 } //方法2: 以DataTable.Select函数判断RowIndex 再取代内值 private void button_ReplaceSelect_Click(object sender, EventArgs e) { //想要将1号换一个人 DataRow[] drs = dt.Select("No=1"); if (drs.Length > 0) //有取到资料才进到这边 { int iRowIndex; //***关键*** //不知该如何获得所搜寻到的row的Index... //将搜寻到 dt.Rows[iRowIndex][1] = "Anna"; dt.Rows[iRowIndex][2] = "Female"; dataGridView1.DataSource = dt; //将内容贴入DGV显示出来 } } 想请问几个问题: 1.用"方法1"会不会耗太多时间在搜寻上(当资料量大时) 2.使用DataTable.Select函数是否可以获得特定的RowIndex? 如果可以的话 用此方法会比"方法1"来的快吗? 3.还是以上两种方法都不优 有更好的处理方式? 希望各位热心的版友们能给予我一点建议! 谢谢!! 祝大家新年快乐!! --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 211.72.212.97
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1423645128.A.9D5.html
1F:→ StupidGaGa: 有没有考虑过用LINQ? 02/11 18:25
2F:推 g66932007: 取资料的sql 取出一栏rownum当作datatable的SEQNO 02/11 21:47
谢谢楼上二位版友的热心回覆 由於没用过SQL与LINQ(汗...) 我会研究看看该如何使用这两项技术的! 谢谢!! ※ 编辑: srxrrr (211.72.212.97), 02/12/2015 09:39:24
3F:推 dontblame: LINQ 是.NET 很棒的一项技术 不用可惜呀 02/12 23:19
谢谢楼上开示!! 我会趁过年时 好好K一下的>_< ※ 编辑: srxrrr (211.72.212.97), 02/13/2015 16:04:49
4F:推 qileyang: 如果搜寻的结果只会有一笔rowindex可以直接填0就好了 02/16 00:47
5F:推 tomex: 先datatable.select好,修改好,再重新让dt及grid重新bind 03/01 06:09







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP