Foxtable(狐表)用户栏目专家坐堂 → [求助]合并数据的问题!!!!!!


  共有6862人关注过本帖树形打印复制链接

主题:[求助]合并数据的问题!!!!!!

帅哥哟,离线,有人找我吗?
gaoyong30000
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:9032 威望:0 精华:1 注册:2011/5/25 16:33:00
[求助]合并数据的问题!!!!!!  发帖心情 Post By:2012/4/16 22:59:00 [只看该作者]

我们单位情况是这样的  总公司A   分公司B  都有自己的服务器

 

由于网络慢的问题 无法实时共享数据库   但是数据库结构是一致的  

 

现在分公司B要同步总公司A  服务器中2张表a和b   同步方式  是分公司B删除a,b表的所有数据,只保存表结构  然后动态与总公司A建立数据源  把数据通过fill方式加载过来保存

 

但是目前发现 删除了本地的 加载了总公司的A的数据后  save不了  求解????? 

 

代码如下

 

Dim s As String = "Provider=SQLOLEDB;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=测试1(东区数据);Data Source=Chinese-f28c28f,1433"
If Connections.TryConnect(s) = True Then
    If Connections.Contains("总公司A") = False Then
        Connections.Add("总公司A",s)
    End If
    Tables("a").fill("select * from {人事档案}","分公司B",False)
    DataTables("a").DeleteFor("true")
    DataTables("a").save
   
    Tables("b").fill("select * from {授权}","分公司B",False)
    DataTables("b").DeleteFor("true")
    DataTables("b").save
   
    Tables("a").fill("select * from {人事档案}","总公司A",False)
    Tables("b").fill("select * from {授权}","总公司A",False)
   
    Dim Result As DialogResult
    Result = messagebox.show("同步完成,是否保存同步的数据至本地?","提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
    If Result = DialogResult.Yes Then
        DataTables("a").save
        DataTables("b").save
    End If
Else
    MessageBox.Show("数据源无法连通!")
End If
e.sender.enabled = False

 

 

 

红色部分save了  但是发现 重新打开项目后 a,b表没数据~~~~~~~~


图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

 

 

 

代码在同步东区数据  按钮里

[此贴子已经被作者于2012-4-16 23:29:04编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/4/17 8:03:00 [只看该作者]

肯定是不能保存的,因为Fill之后,因为系统知识保存已经修改或新增的数据,Fill的数据等于是加载进来的数据,没有任何修改谈何保存?而且即使保存,也是保存回总公司啊?

 

 

Dim s As String = "Provider=SQLOLEDB;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=测试1(东区数据);Data Source=Chinese-f28c28f,1433"
If Connections.TryConnect(s) = True Then
    If Connections.Contains("总公司A") = False Then
        Connections.Add("总公司A",s)
    End If
    Tables("a").fill("select * from {人事档案}","分公司B",False)
    DataTables("a").DataRows.Clear
    DataTables("a").save
    Tables("b").fill("select * from {人事档案}","总公司A",False)
   
    Tables("a").StopRedraw
    For Each dr1 As DataRow In Tables("b").DataTable.DataRows
        Dim dr2 As DataRow = Tables("a").DataTable.AddNew()
        For Each dc As DataCol In Tables("a").DataTable.DataCols
            dr2(dc.Name) = dr1(dc.name)
        Next
    Next
    Tables("a").ResumeRredraw
       
    Dim Result As DialogResult
    Result = messagebox.show("同步完成,是否保存同步的数据至本地?","提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
    If Result = DialogResult.Yes Then
        DataTables("a").save
        DataTables("b").save
    End If
Else
    MessageBox.Show("数据源无法连通!")
End If
e.sender.enabled = False


 回到顶部
帅哥哟,离线,有人找我吗?
gaoyong30000
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:9032 威望:0 精华:1 注册:2011/5/25 16:33:00
  发帖心情 Post By:2012/4/17 8:55:00 [只看该作者]

老大 照您上面的代码    只是分公司B 同步了 总公司A的  a表数据     并保存了总公司A的 b表数据

 

 而分公司B的 b表数据 没有与A公司同步并保存哎

 

我想实现的是 分公司B的 a,b表数据同步总部数据即可

 

[此贴子已经被作者于2012-4-17 9:13:54编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/4/17 8:59:00 [只看该作者]

我举个例子给你而已,你可以用同样的方法,同步其他数据。


 回到顶部
帅哥哟,离线,有人找我吗?
gaoyong30000
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:9032 威望:0 精华:1 注册:2011/5/25 16:33:00
  发帖心情 Post By:2012/4/17 9:14:00 [只看该作者]

按照您的方法   我得再建立一个分区面板 再放2张表 才行吧 ~


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/4/17 9:29:00 [只看该作者]

没有必要,你用的是Fill,可以重复使用那两个Table控件。

如果用SQLCommand的ExcuteReader,一个Table控件就可以解决。

[此贴子已经被作者于2012-4-17 9:30:15编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
gaoyong30000
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:9032 威望:0 精华:1 注册:2011/5/25 16:33:00
  发帖心情 Post By:2012/4/17 10:05:00 [只看该作者]

sqlcommad?    怎么弄?

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
gaoyong30000
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:9032 威望:0 精华:1 注册:2011/5/25 16:33:00
  发帖心情 Post By:2012/4/17 10:25:00 [只看该作者]

最终的代码   老大您过目一下 有什么不妥  我测试ok!

 

Dim s As String = "Provider=SQLOLEDB;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=测试1(东区数据);Data Source=Chinese-f28c28f,1433"
If Connections.TryConnect(s) = True Then
    If Connections.Contains("华泰内控系统-ERP(东区)") = False Then
        Connections.Add("华泰内控系统-ERP(东区)",s)
    End If
    Tables("数据同步(西)_数据同步(西)Table1").fill("select * from {人事档案}","华泰内控系统-ERP",False)
    DataTables("数据同步(西)_数据同步(西)Table1").DataRows.Clear
    DataTables("数据同步(西)_数据同步(西)Table1").save
    Tables("数据同步(西)_数据同步(西)Table2").fill("select * from {人事档案}","华泰内控系统-ERP(东区)",False)
   
    DataTables("数据同步(西)_数据同步(西)Table1").StopRedraw
    For Each dr1 As DataRow In Tables("数据同步(西)_数据同步(西)Table2").DataTable.DataRows
        Dim dr2 As DataRow = Tables("数据同步(西)_数据同步(西)Table1").DataTable.AddNew()
        For Each dc As DataCol In Tables("数据同步(西)_数据同步(西)Table1").DataTable.DataCols
            dr2(dc.Name) = dr1(dc.name)
        Next
    Next
    DataTables("数据同步(西)_数据同步(西)Table1").ResumeRedraw
    DataTables("数据同步(西)_数据同步(西)Table1").save
    DataTables("数据同步(西)_数据同步(西)Table2").save
   
    Tables("数据同步(西)_数据同步(西)Table1").fill("select * from {授权}","华泰内控系统-ERP",False)
    DataTables("数据同步(西)_数据同步(西)Table1").DataRows.Clear
    DataTables("数据同步(西)_数据同步(西)Table1").save
    Tables("数据同步(西)_数据同步(西)Table2").fill("select * from {授权}","华泰内控系统-ERP(东区)",False)
   
    Tables("数据同步(西)_数据同步(西)Table1").StopRedraw
    For Each dr1 As DataRow In Tables("数据同步(西)_数据同步(西)Table2").DataTable.DataRows
        Dim dr2 As DataRow = Tables("数据同步(西)_数据同步(西)Table1").DataTable.AddNew()
        For Each dc As DataCol In Tables("数据同步(西)_数据同步(西)Table1").DataTable.DataCols
            dr2(dc.Name) = dr1(dc.name)
        Next
    Next
    Tables("数据同步(西)_数据同步(西)Table1").ResumeRedraw
    DataTables("数据同步(西)_数据同步(西)Table1").save
    DataTables("数据同步(西)_数据同步(西)Table2").save
    msgbox("同步成功,请重启系统以便生效")
Else
    MessageBox.Show("数据源无法连通!")
End If
e.sender.enabled = False

[此贴子已经被作者于2012-4-17 10:32:12编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/4/17 10:47:00 [只看该作者]

呵呵,能测试通过就行

 回到顶部