以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]内部数据表,如何更新现有数据?  (http://foxtable.com/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 Book As New XLS.Book("D:\\學生表.xls") \'定义一个Excel工作簿
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()