Foxtable(狐表)用户栏目专家坐堂 → 老大,有问题指教,请指明思路!


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

主题:老大,有问题指教,请指明思路!

帅哥哟,离线,有人找我吗?
唐尸三摆手
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2010/9/17 10:13:00 [只看该作者]

咦,奇怪了,怎么执行没有结果呢?

 

Dim cmd As New SQLCommand
Dim dt As datatable
cmd.C
cmd.CommandText = "select distinct inputdate,remark From a1"
dt = cmd.ExecuteReader()
Dim Arys As List(Of String())
Arys =dt.GetUniqueValues("","inputdate", "remark")
For Each dr As DataRow In dt.DataRows
    Dim dr1 As DataRow = DataTables("youhua").AddNew()
    dr1("inputdate") = dr("inputdate")
    dr1("remark") = dr("remark")
    For Each dc AS DataCol In DataTables("youhua").DataCols
        Dim dr2 As DataRow = dt.Find("inputdate = #" & dr("inputdate") & "# And remark = '" & dr("remark") & "' And workcentercode = '" & dc.Caption & "'")
        If dr2 IsNot Nothing
            dr1(dc.name) = dr2("planid")
        End If
    Next
Next

 


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

 

后台明明有workcentercode这一列啊

[此贴子已经被作者于2010-9-17 10:30:49编辑过]

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


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

提示:

 

1、下面两行可以删除:

 

Dim Arys As List(Of String())
Arys =dt.GetUniqueValues("","inputdate", "remark")

 

2、如果没有增加行,说明dt是空的,也就是cmd的条件有问题,如果有增加行,但相关列的内容没有填入,可能就是下面的条件不符:

 

dt.Find("inputdate = #" & dr("inputdate") & "# And remark = '" & dr("remark") & "' And workcentercode = '" & dc.Caption & "'")

[此贴子已经被作者于2010-9-17 10:33:33编辑过]

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


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

找不到workcentercode 是应该的,后台有workcentercode 列,但你不是在后台找,你是在dt表中找,而你的dt表没有此列,因为下面的语句没有包括此列:

 

cmd.CommandText = "select distinct inputdate,remark From a1"

 

你必须在Select语句中将此列包括进去,提醒一下,包括此列之后,你必须采用之前的代码来获得不重复的值:

 

Dim Arys As List(Of String())
Arys =dt.GetUniqueValues("","inputdate", "remark")

 

相关的代码也应该改一下。

 

你要先理解代码,再去修改代码。

[此贴子已经被作者于2010-9-17 10:38:33编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
唐尸三摆手
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2010/9/17 10:46:00 [只看该作者]

哦,明白了,原来dt没有这个列的,按照你的方法就OK了,

 

我还有个问题,老大,假如我想直接从后台找,(是否不用生成dt这个datatable)

Dim dr2 As DataRow = dt.Find("inputdate = #" & dr("inputdate") & "# And remark = '" & dr("remark") & "' And workcentercode = '" & dc.Caption & "'")
这句应该如何改动?


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


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

用Select语句去找即可,具体看看SQLCommand

但是执行次数很多,从后台找慢。


 回到顶部
帅哥哟,离线,有人找我吗?
唐尸三摆手
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2010/9/17 11:16:00 [只看该作者]

呵呵,我试试
[此贴子已经被作者于2010-9-17 11:19:00编辑过]

 回到顶部
总数 16 上一页 1 2