以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]转换遇到问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=5469) |
||||
-- 作者:abcdzabcdz -- 发布时间:2009/12/13 19:52:00 -- [求助]转换遇到问题 在将"课程表"转换为"课时名单"时,不希望将"1班","2班",....."99班"转换到"姓名"列中,"星期"列不只显示星期几不想显示第几节(如:希望星期列中出现"星期一","星期二",.....,不希望出现"星期一_1","星期二_2",........,请问下列代码如何修改?谢谢 dim h as integer =0 DataTables("课时名单").DataRows.Clear() For Each drkc As DataRow In DataTables("课程表").DataRows for Each dckc as Datacol in DataTables("课程表").Datacols if drkc(dckc) isnot nothing then if drkc(dckc) <> "" then Dim drmd As DataRow h=h+1 drmd = DataTables("课时名单").DataRows.AddNew() drmd("星期") = dckc.name drmd("姓名") = drkc(dckc) drmd("计分") = 1 end if end if next next Messagebox.Show("处理完毕!")
|
||||
-- 作者:mr725 -- 发布时间:2009/12/13 21:07:00 -- DataTables("课时名单").DataRows.Clear() For Each drkc As DataRow In DataTables("课程表").DataRows for i as integer = 1 to Tables("课程表").cols.count -1 if drkc(Tables("课程表").cols(i).name) isnot nothing and drkc(Tables("课程表").cols(i).name) <> "班级" then if drkc(Tables("课程表").cols(i).name) <> "" then Dim drmd As DataRow drmd = DataTables("课时名单").DataRows.AddNew() drmd("星期") = Tables("课程表").cols(i).name.split("_")(0) drmd("姓名") = drkc(Tables("课程表").cols(i).name) drmd("计分") = 1 end if end if next next Messagebox.Show("处理完毕!") [此贴子已经被作者于2009-12-13 21:12:24编辑过]
|
||||
-- 作者:czy -- 发布时间:2009/12/13 21:19:00 -- 也可以: Dim Values() As String dim h as integer =0 DataTables("课时名单").DataRows.Clear() For Each drkc As DataRow In DataTables("课程表").DataRows for Each dckc as Datacol in DataTables("课程表").Datacols if drkc(dckc) isnot nothing then if drkc(dckc) <> "" then Dim drmd As DataRow h=h+1 drmd = DataTables("课时名单").DataRows.AddNew() Values = dckc.name.split("_") drmd("星期") = Values(0) drmd("姓名") = drkc(dckc) drmd("计分") = 1 end if end if next next Messagebox.Show("处理完毕!") |
||||
-- 作者:abcdzabcdz -- 发布时间:2009/12/13 21:42:00 -- 以下是引用czy在2009-12-13 21:19:00的发言:
也可以: Dim Values() As String dim h as integer =0 ................ "星期"列处理:我压根儿没想到用split函数来处理,一直试图用SubString函数解决问题. [此贴子已经被作者于2009-12-13 22:17:07编辑过]
|
||||
-- 作者:abcdzabcdz -- 发布时间:2009/12/13 21:54:00 -- 以下是引用mr725在2009-12-13 21:07:00的发言:
DataTables("课时名单").DataRows.Clear() ......... Messagebox.Show("处理完毕!") 谢谢mr725. [此贴子已经被作者于2009-12-13 22:17:41编辑过]
|
||||
-- 作者:mr725 -- 发布时间:2009/12/13 21:57:00 -- 上面代码速度都太慢了!~ 要二、三十秒钟啊(我电脑老了) ~ 且变量 h 好像没用哦~ |
||||
-- 作者:abcdzabcdz -- 发布时间:2009/12/13 22:06:00 -- 用if语句控制列是一种方法;不知用for each语句能否控制列? |
||||
-- 作者:czy -- 发布时间:2009/12/13 22:19:00 -- 以下是引用abcdzabcdz在2009-12-13 22:06:00的发言:
用if语句控制列是一种方法;不知用for each语句能否控制列?
|
||||
-- 作者:abcdzabcdz -- 发布时间:2009/12/13 22:29:00 -- C老师高招,for...each与if语句结合代码很轻易解决7楼问题.谢谢! |
||||
-- 作者:abcdzabcdz -- 发布时间:2009/12/13 22:35:00 -- 以下是引用mr725在2009-12-13 21:57:00的发言:
上面代码速度都太慢了!~ 要二、三十秒钟啊(我电脑老了) ~ 且变量 h 好像没用哦~ 的确较慢,转换生成5940条记录需19秒,提高速度只有看贺老师了. |