Foxtable(狐表)用户栏目专家坐堂 → 关于字符串长度


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

主题:关于字符串长度

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


加好友 发短信
等级:小狐 帖子:366 积分:2478 威望:0 精华:0 注册:2013/1/13 23:43:00
关于字符串长度  发帖心情 Post By:2013/9/13 18:36:00 [只看该作者]

为了根据产品的代码生成其对应的相关产品信息,我在“货品信息”表的datacolchanged事件中编写了如下代码:

 

If e.NewValue = Nothing Then
    Return
End If
Dim dr As DataRow
Dim hh,xl,xb,jb,nf,pp As String
Dim v,i As Integer
hh = e.NewValue
For i = 0 To hh.length - 1
    If Char.IsDigit(hh.Substring(i,1)) Then
        v = i
        Exit For
    End If
Next

xl = hh.Substring(0,v)
nf = hh.Substring(v,2)
xb = hh.Substring(v + 2,1)
jb = hh.Substring(v + 3,1)

 

dr = DataTables("系列信息").Find("代码 ='" & xl & "'")
If dr IsNot Nothing Then
    xl = dr("系列")
    pp = dr("品牌")
End If

MessageBox.Show(1)

dr = DataTables("性别信息").Find("代码 ='" & xb & "'")
If dr IsNot Nothing Then
    xb = dr("性别")
End If

MessageBox.Show(2)

dr = DataTables("季别信息").Find("代码 ='" & jb & "'")
If dr IsNot Nothing Then
    jb = dr("季别")
End If

MessageBox.Show(3)

dr = e.DataRow
dr("年份") = nf
MessageBox.Show(3.1)

dr("季别") = jb

MessageBox.Show(3.2)
dr("性别") = xb

MessageBox.Show(3.3)
dr("系列") = xl

MessageBox.Show(3.4)
dr("品牌") = pp

 

运行到MessageBox.Show(3)以后出现如下错误提示:

 


图片点击可在新窗口打开查看此主题相关图片如下:2013-09-13 18 23 26.png
图片点击可在新窗口打开查看

 

叉掉错误提示窗口,运行到MessageBox.Show(3.1),dr("年份") = nf 正确生成,再次出现同样的错误提示。

叉掉错误提示窗口,运行到MessageBox.Show(3.2),dr("季别") = jb 正确生成,又一次出现同样的错误提示,以此类推,直至结束。

 

不知道问题出在哪里,请教各位!

[此贴子已经被作者于2013-9-13 18:44:20编辑过]

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7237 积分:40614 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/9/13 19:02:00 [只看该作者]

datacolchanged事件首先要判断列名称,否则,e.NewValue 及其后面的代码在给表任意列变化后均被调用或执行,其次要判断控制,什么错误我想您应该明白了,自己动手改一改吧,您能行的!

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/9/13 19:17:00 [只看该作者]

 你的 v = i (i可能是0 到 hh.length - 1)

 但你写有

xb = hh.Substring(v + 2,1)
jb = hh.Substring(v + 3,1)

 有v + 2, v + 3 自然是超过hh范围的。
[此贴子已经被作者于2013-9-13 19:17:23编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
东坡一剑
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:366 积分:2478 威望:0 精华:0 注册:2013/1/13 23:43:00
  发帖心情 Post By:2013/9/13 20:55:00 [只看该作者]

感谢程兴刚,提醒得太对了!

我居然把这茬给忘了,简直弱智!


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


加好友 发短信 一级勋章
等级:超级版主 帖子:7237 积分:40614 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/9/13 21:25:00 [只看该作者]

2楼控制=空值

 回到顶部