以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]SelectedIndexChanged运行错误  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=69953)

--  作者:huhu
--  发布时间:2015/6/13 13:57:00
--  [求助]SelectedIndexChanged运行错误

SelectedIndexChanged代码:

Dim cmbgsjc As WinForm.ComboBox = e.Form.Controls("Cmb公司简称")
Dim dr As DataRow = cmbgsjc.SelectedItem
If dr IsNot Nothing Then
    Tables("交换机产品化明细表").Current("公司全称") = dr("公司全称")
    Tables("交换机产品化明细表").Current("厂商ID") = dr("厂商ID")
    Tables("交换机产品化明细表").Current("版权显示") = dr("版权显示")
End If

可是当我选择了公司简称下拉列的某个值就出现这个报错,是什么情况?

 


图片点击可在新窗口打开查看此主题相关图片如下:运行错误.png
图片点击可在新窗口打开查看

--  作者:Bin
--  发布时间:2015/6/13 14:20:00
--  
Dim dr As DataRow = cmbgsjc.SelectedItem

如果不是设置来自表,cmbgsjc.SelectedItem 获取的是字符串

--  作者:Bin
--  发布时间:2015/6/13 14:20:00
--  
http://www.foxtable.com/help/topics/0932.htm
--  作者:huhu
--  发布时间:2015/6/13 14:36:00
--  

在afterload里面设置了从表交换机产品化明细表获取出不重复的公司简称了。

Dim cmbgsjc As WinForm.ComboBox = e.Form.Controls("Cmb公司简称")
cmbgsjc.ComboList = DataTables("交换机产品化明细表").GetComboListString("公司简称")


--  作者:Bin
--  发布时间:2015/6/13 14:38:00
--  
这样你得出来的是字符串一个.  也就是你选中的值

并不是 一个 DATAROW

你可以利用 FIND去找到对应的行.但是如果有重复的值.可能找到的行并不是你想要的那一行