以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]内部数据表,如何更新现有数据? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=20557) |
-- 作者:net2003 -- 发布时间:2012/6/12 12:12:00 -- [求助]内部数据表,如何更新现有数据? 假如有个学生表,有学号(不重复)、姓名、电话号码三列。 有一份相同的Excel表,想将这份Excel的电话更新到学生表里面去,怎么弄? 我用高速合并功能,foxtable则在学生表里添加了一份完整的记录,每个学生有两条记录了,而不是更新电话号码。 后来想用sql语句更新,可是只能执行一行语句。 除了手动更新以后,还有没有其它方法??上万条记录呀。。。。。 |
-- 作者:wjl-se -- 发布时间:2012/6/12 12:37:00 -- 高级方法不会,笨方法有一个: 把excel表导入foxtable后,根据学号建立两表的关联,原来的数据表利用表达式把电话引用过来,然后再把电话列(表达式)列的内容复制到另外一数据列,完成后就可以把关联及导入的表删除就行了。
|
-- 作者:lihe60 -- 发布时间:2012/6/12 12:39:00 -- 先将excel导入一个临时表,再遍历临时表:重复的立即删除,再将临时表全部导入正式表。
若还搞不定,发个贴子,我帮你搞定。 [此贴子已经被作者于2012-6-12 12:41:12编辑过]
|
-- 作者:lihe60 -- 发布时间:2012/6/12 12:40:00 -- 以下是引用net2003在2012-6-12 12:12:00的发言:
假如有个学生表,有学号(不重复)、姓名、电话号码三列。 有一份相同的Excel表,想将这份Excel的电话更新到学生表里面去,怎么弄? 我用高速合并功能,foxtable则在学生表里添加了一份完整的记录,每个学生有两条记录了,而不是更新电话号码。 后来想用sql语句更新,可是只能执行一行语句。 除了手动更新以后,还有没有其它方法??上万条记录呀。。。。。 上万条应该没有的,你是什么学校?要么是社会大学?中国的社会大学有13多亿学生的。 |
-- 作者:lihe60 -- 发布时间:2012/6/12 12:45:00 -- 以下是引用wjl-se在2012-6-12 12:37:00的发言:
高级方法不会,笨方法有一个: 把excel表导入foxtable后,根据学号建立两表的关联,原来的数据表利用表达式把电话引用过来,然后再把电话列(表达式)列的内容复制到另外一数据列,完成后就可以把关联及导入的表删除就行了。
其实我的也是笨方法,希望有高级方法出现。 |
-- 作者:net2003 -- 发布时间:2012/6/12 17:25:00 -- 以下是引用wjl-se在2012-6-12 12:37:00的发言:
高级方法不会,笨方法有一个: 把excel表导入foxtable后,根据学号建立两表的关联,原来的数据表利用表达式把电话引用过来,然后再把电话列(表达式)列的内容复制到另外一数据列,完成后就可以把关联及导入的表删除就行了。
好聪明的办法,我怎么就没想到呢。。。。总之,已经把数据更新完了。 至于能不能做个对话窗出来,后面再想办法。 |
-- 作者:don -- 发布时间:2012/6/12 17:53:00 -- 大概如此: Dim TEL,IDT as string Dim cmd As New SQLCommand Dim Sheet As XLS.Sheet = Book.Sheets(0) \'引用工作簿的第一个工作表 For i As Integer = 1 To Sheet.Rows.count IDT =
Sheet(i, 0).Value TEL = Sheet(i, 2).Value if IDT is Nothing then Exit for End if cmd.CommandText = "UPDATE {學生表} SET 電話 = \'" & TEL & "\' WHERE 學號 =\'" & IDT & "\'" cmd.ExecuteNonQuery() Next DataTables ("學生表").Load()
|