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


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

主题:关于datatable的疑惑!

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57596 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2013/7/25 8:10:00 [只看该作者]

真不知道你需要表明什么?

  如果是调取可以用这个代码,获取的永远是最新的数据.

f 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

   这个功能相当于FIND(单条数据) 如果不用:
If dt.DataRows.Count > 0 Then
        dr("区号") = dt.DataRows(0)("区号")
        dr("邮编") = dt.DataRows(0)("邮编")
    Else
        dr("区号") = Nothing
        dr("邮编") = Nothing
    End If
End If
   这一段那么你还是可以
 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
    dim sn as datarow = dt.find(" [省市] = '" & dr("省市") & "' And [县市] = '" & dr("县市") & "'" )
    if sn isnot nothing then
    xxxxx
 end if

  这样处理!

   我想这个SQL语句你应该会的吧.在狐表除非你用查询表,可能SQL语句可以使用复杂些,但是处理数据,就用这么简单的SQL语句就行了(狐表的load,其实也是SQL语句写的)

  另外一个关联表的使用,你如果需要加载到前台来 可以利用同步,在后台处理方法一样的呀.
  

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


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

先谢谢布莱克老师。前面的都看得懂,最后一句没看懂,关联表怎么同步和后台处理?

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


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

就是帮助中的代码这样处理的。

这种代码可以看做是一种常规代码,你封装后可以在任何地方使用,无需重复写。

传递3个参数,
参数1 父表 dt1

参数2 子表 dt2

参数3 关联列 ID

 

子表为什么要同步加载父表所有的关联数据哪?而不是选中后加载相关ID列那?

开发版版本太低打不开最新的

[此贴子已经被作者于2013-7-25 9:29:46编辑过]

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


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

我的本意就是不想加载所有的子表数据,子表数据根据父表数据加载,如果关联表有个这样的属性:关联子表的数据随父表数动态(实时)加载,那多好,就不用搞那么多代码了。
利用find的时候,有个属性:从数据库中查找,也是一样的意思。

我的本意不是问有没有解决方法,而是这么常用的功能,狐表应该有一个更好的解决方法!

加个属性能代替那么多代码,不好吗?

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


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

以下是引用客家阿哥在2013-7-25 9:39:00的发言:
我的本意就是不想加载所有的子表数据,子表数据根据父表数据加载,如果关联表有个这样的属性:关联子表的数据随父表数动态(实时)加载,那多好,就不用搞那么多代码了。
利用find的时候,有个属性:从数据库中查找,也是一样的意思。

我的本意不是问有没有解决方法,而是这么常用的功能,狐表应该有一个更好的解决方法!

加个属性能代替那么多代码,不好吗?

狐表目前的方法都是针对加载后的数据,对于没有加载的,几乎没有任何功能。

 

子表根据父表加载:默认只加载选中行的相关子表记录。这应该是最合理的。

 

提出的这个子表同步问题,其实应该是用查询表解决的,而不是关联表,你可能只要一张表把这些数据呈现出来就可以了。

 

Find方法 :即使从后台加载, 还是那个问题,当你存在多个数据的时候,你返回什么?一个值?行?还是表?

返回后如何处理?显然还是不能用很简单的代码得到,你还是要自己解决这个返回后的问题。这不是一个属性能解决的,也不是一个代码能解决的,即使可以也不一定你能用的上。

 

你应该封装一些适合自己常用的方法成为一个函数,需要的时候调用即可,慢慢积累成自己的东西。

 

还有你说,对于高手SQL都是小菜.

我只能说,我在foxtable之前,没接触过数据库,不会任何的sql语句,都是在这个之后慢慢学习。而且我也很负责任的告诉你:不会SQL语句,在以后的开发中肯定处处受制,是受制于Foxtable,他没有提供你就没办法解决。

数据库的核心是sql语言,是每个学习数据库的人都应该掌握的。等你掌握了后,你会发现原来的问题,真的不是问题。

 

 

 


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


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

呵呵~~~~~~~~
有时候想当菜鸟都不行啊~~~~~~~~~
估计高手都是逼出来的~~~~~~~~~~~~

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


加好友 发短信
等级:小狐 帖子:313 积分:2913 威望:0 精华:0 注册:2012/7/20 16:04:00
  发帖心情 Post By:2013/7/25 13:06:00 [只看该作者]

我感觉系统功能不需要特别特别牛X,帮助里的sql语言介绍部分就足够用了


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