以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]TrimEnd为什么删不掉后面的字符? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=171417) |
-- 作者:chh2321 -- 发布时间:2021/8/29 18:27:00 -- [求助]TrimEnd为什么删不掉后面的字符? 请教老师,代码如下: Dim dt As Data Table = DataTables("tblInvReport") For Each dr As DataRow In dt.DataRows Dim Filter As String For i As Integer = 1 To dt.DataCols.Count - 1 Filter = Filter & "[" & dt.DataCols(i).Name & "]" & " = \'" & dr(dt.DataCols(i)) & "\' and " Next Filter = Filter.TrimEnd(" and ") MessageBox.Show(Filter) Dim dr1 As DataRow = DataTables("表2").Find(Filter) If dr1 Is Nothing Then \'如果没有找到的话 Dim tr = Tables("表2").AddNew() For Each dc As DataCol In DataTables("tblInvReport").DataCols tr(dc.Name) = dr(dc.Name) Next Else Continue For End If Next 运行后出错 两个问题: 1. 为什么TrimEnd不能删除Filter后面的字符——“ and ”,是因为语法问题还是Foxtable 2022 preview的bug? 我试了Filter = Filter.TrimEnd(" and "),Filter = Filter.TrimEnd(" ",“and”)都不行 2. 表中有日期格式字段,但是代码【Filter = Filter & "[" & dt.DataCols(i).Name & "]" & " = \'" & dr(dt.DataCols(i)) & "\' and "】会出现 [日期] = ‘2015-10-13’ 这样的问题,如何解决? 【备注说明】我现在用的是Foxtable 2022 preview [此贴子已经被作者于2021/8/29 18:34:08编辑过]
|
-- 作者:有点蓝 -- 发布时间:2021/8/29 21:10:00 -- TrimEnd只能支持单个字符的处理,如果确定是后面的字符。换种用法 Filter = Filter.substring(0,Filter.length - 4) 日期、数字和逻辑列要单独处理,判断列类型参考: 表达式中的日期用符号#括起来,数值则不需要任何符号括起来,这些和代码中的格式是一样的,唯一不同的是字符串用单引号括起来。 例如: Tables("订单").Filter = "[产品] = \'PD01\'" \'字符用单引号括起来 |
-- 作者:chnfo -- 发布时间:2021/8/29 21:26:00 -- Filter = Filter.TrimEnd(" and ") 这样写 filter = filter.trim(" ","a","n","d")
|
-- 作者:chh2321 -- 发布时间:2021/8/29 22:01:00 -- 表中字段很多,如果用Filter = “字段1 = ‘字段1’ and 字段2 =‘字段2’ and .... and 字段n =‘字段n’” 会很麻烦,所以用Filter = Filter & dt.DataCols(i).Name & " = \'" & dr(dt.DataCols(i)) & "\' and " 来替代,但是我不知道如果其中一个字段是日期型,该如果编写代码? 只能写成如下麻烦的形式吗? Filter = “字段1 = ‘字段1’ and 字段2 =‘字段2’ and .... and 日期 = #日期# ... ...and 字段n =‘字段n’”
[此贴子已经被作者于2021/8/29 22:04:53编辑过]
|
-- 作者:有点蓝 -- 发布时间:2021/8/29 22:07:00 -- For i As Integer = 1 To dt.DataCols.Count - 1 Filter = Filter & "[" & dt.DataCols(i).Name & "]" & " = \'" & dr(dt.DataCols(i)) & "\' and " elseif dt.DataCols(i).IsDate Filter = Filter & "[" & dt.DataCols(i).Name & "]" & " = #" & dr(dt.DataCols(i)) & "# and " else …… Next
|