Foxtable(狐表)用户栏目专家坐堂 → 关于datatable的疑惑!


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

主题:关于datatable的疑惑!

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


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2013/7/24 13:20:00 [只看该作者]

以下是引用客家阿哥在2013-7-24 12:43:00的发言:
如果有 fromserver,直接查询后台服务器上的数据,是不是更简单????

那你有没有想过你需要哪些数据那?你想要返回什么数据?

一个值?一行?表?

事实上 loadfilter + load = fromserver

 

那么不就是封装一个返回datatable的函数而已吗?

 


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


加好友 发短信
等级:四尾狐 帖子:822 积分:5954 威望:0 精华:0 注册:2012/10/24 15:01:00
  发帖心情 Post By:2013/7/24 15:07:00 [只看该作者]

讨论当然好了,能互相学习。
但是不能避重就轻,我问了两个问题,你使劲就讨论loadfilter和load,为什么就不讨论一下find呢?
============================================================================
那就先简单的说起吧

我记得使用 DataTables("表").Find()的时候,
如果不使用
datatables().loadfilter= ""

datatables().load

就发生找到的值不是数据现在的值问题?!,例如甲修改了数据库的值,乙找到的值仍然是加载到乙软件中的值,而不是甲修改过的值。



如果不使用sql,怎么解决???????以上都是采用sql2005做数据库的情况下,多台电脑同时工作

=================================================================================================================================


我对datatable和table的理解是这样的:


datatable只是数据库加载根据条件加载到foxtable中的一部分数据或者全部数据,也就是说datatable<=数据库,而table是属于foxtable里面的datatable中“看得见”的数据的一部分

,table<=datatable;
    
  我所担心的是 datatable加载几十万,几百万数据的时候会不会挂掉?按我的理解答案是肯定会的!datatable是批量加载数据的,在foxtable中临时储藏,如果批量的数据足够大的时候,那情况会怎么样呢?

如果datatable的属性能过直接对数据库进行操作,把需要的数据直接加载处理,返回数据库,那就完美了,能脱离sql语句了

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/7/24 15:08:00 [只看该作者]

加载百万级别的数据是绝对会挂掉的. 你这个建议不错,希望狐爸以后实现吧.

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


加好友 发短信
等级:四尾狐 帖子:822 积分:5954 威望:0 精华:0 注册:2012/10/24 15:01:00
  发帖心情 Post By:2013/7/24 15:20:00 [只看该作者]

高手喜欢用sql的主要原因时候能直接操作处理数据库数据,而且又因为以前学过,用过sql,对sql比较熟悉,很多菜鸟级的问题在高手面前都是小菜一碟!

菜鸟的愿望是能够通过datatable属性,也能够直接对数据库进行操作!

如果这个功能对于狐爸来说比较难的话,也希望狐爸能努力,能给于希望,最好就说,考虑下一步加入!呵呵

其实也应该不难,datatable属性的本质就是生成sql语句,然后对数据库进行操作!狐爸,等你的好消息!

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


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2013/7/24 15:23:00 [只看该作者]

datatables().load

就发生找到的值不是数据现在的值问题?!,例如甲修改了数据库的值,乙找到的值仍然是加载到乙软件中的值,而不是甲修改过的值。

 

你用find方法才会出现这种情况。你查找的是你已经加载的,所以你必须重新加载一次,再使用find方法

为什么不讨论find?

在刚开始学习的时候,使用过find函数,为了定位行,但有多个行的时候,用起来非常不方便。现在用loadfilter直接代替

 那么很明显,find方法在多人工作环境下,变得缺乏意义。

举个简单的例子:

你浏览网页,如果你不刷新,你能看见网页更新的内容吗?这就是相当于执行了一次load

 

你觉得把数据一次加载到foxtable中然后进行查找,真的比你从后台加载少量数据快吗?如果你网络畅通的话,你完全感觉不到区别

 

 

乙找到的值还是原来的值。

如果已经重新加载了,这个是不可能的。只有一种情况会出现,乙修改了该行,然后进行load加载。foxtable默认情况下load是保存表的,那么就修改了数据库。

解决方法

datatables().load(False)

 

[此贴子已经被作者于2013-7-24 15:31:59编辑过]

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


加好友 发短信
等级:四尾狐 帖子:822 积分:5954 威望:0 精华:0 注册:2012/10/24 15:01:00
  发帖心情 Post By:2013/7/24 17:29:00 [只看该作者]

那么“关联表”怎么解决?

父表,子表数据能不全部加载吗?

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


加好友 发短信
等级:四尾狐 帖子:822 积分:5954 威望:0 精华:0 注册:2012/10/24 15:01:00
  发帖心情 Post By:2013/7/24 17:33:00 [只看该作者]

父表,子表执行之前来一段下面的代码:

If e.DataCol.Name = "省市" Orelse e.DataCol.Name = "县市" Then
    Dim cmd As New SQLCommand
    Dim dt As DataTable
    Dim dr As DataRow = e.DataRow
    cmd.C
    cmd.CommandText = "SELECT * From {行政区域} Where [省市] = '" & dr("省市") & "' And [县市] = '" & dr("县市") & "'" 
    dt = cmd.ExecuteReader
    If dt.DataRows.Count > 0 Then
        dr("区号") = dt.DataRows(0)("区号")
        dr("邮编") = dt.DataRows(0)("邮编")
    Else
        dr("区号") = Nothing
        dr("邮编") = Nothing
    End If
End If

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


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2013/7/24 18:02:00 [只看该作者]

以下是引用客家阿哥在2013-7-24 17:29:00的发言:
那么“关联表”怎么解决?

父表,子表数据能不全部加载吗?

关联表更加适合用loadfilter,按条件加载。你上个例子吧,把要求说清楚。

你回复的帖子不知道为什么总是缺失一些信息,而且页面也乱掉了,不知道是不是我的问题

 

父表,子表执行之前来一段下面的代码:代码就看不到


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


加好友 发短信
等级:四尾狐 帖子:822 积分:5954 威望:0 精华:0 注册:2012/10/24 15:01:00
  发帖心情 Post By:2013/7/24 23:08:00 [只看该作者]

答案在这里


自己做了一个例子
http://yunpan.cn/QnjAeNsYK3W4a
[此贴子已经被作者于2013-7-24 23:08:18编辑过]

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


加好友 发短信
等级:四尾狐 帖子:822 积分:5954 威望:0 精华:0 注册:2012/10/24 15:01:00
  发帖心情 Post By:2013/7/24 23:10:00 [只看该作者]

要是加载关联表能根据父表,直接从后台加载子表,不用写代码的话,就更好了!

 回到顶部
总数 37 上一页 1 2 3 4 下一页