太奇怪的问题

benny7878 2005-09-15 02:44:41

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
scan_hangban1()
End Sub '响应combobox1内索引的变化
'**********************************************************
Private Sub scan_hangban1()
Dim t1 As new DataView
Dim t2 As New DataView

Dim a As String
Dim b As Integer
t1= ds.Tables("ship").DefaultView '这句报错
t1.RowFilter = ("shipname='" & ComboBox1.Text & "'")
If t1.Count > 0 Then
a = t1.Item(0).Item(1)
Else
MsgBox("没有此船", MsgBoxStyle.OKOnly)
Exit Sub
End If
t2 = ds.Tables("hangban").DefaultView
t2.RowFilter = ("shipid='" & a & "'")
If t2.Count > 0 Then
ComboBox2.Items.Clear()
For b = 0 To t2.Count - 1
a = t2.Item(b).Item(1)
ComboBox2.Items.AddRange(New Object() {a})
Next
ComboBox2.Text = ComboBox2.Items(0)
End If

End Sub
以上过程我把它放在combobox1_click过程中就通过了,放在form_load里面也通过,可是如果放在ComboBox1_SelectedIndexChanged事件里一运行就会报如下错误


未处理的“System.NullReferenceException”类型的异常出现在 船舶库存.exe 中。

其他信息: 未将对象引用设置到对象的实例。
从字面上理解好象是说我没有设置对象的实例,但是我在过程中已经有Dim t1 As new DataView这句了
各位能帮我看一下是什么问题吗

...全文
87 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
shicj 2005-09-19
  • 打赏
  • 举报
回复
我用datagrid时也遇到过相同的错误,头痛了两天。后来发现可能因为是作为datasource的datatable中的数据乱掉的缘故,我在每次insert,add,delete 后都加了句 DataTable.AcceptChanges(),就好了。希望对你有帮助。
benny7878 2005-09-15
  • 打赏
  • 举报
回复
回复exing(铱星)
我在formload里
dc.CommandText = "select * from ship"
da.SelectCommand = dc
da.Fill(ds, "ship")
DataGrid1.DataSource = ds.Tables("ship").DefaultView
显示出来ds.Tables("ship").DefaultView
是有的
benny7878 2005-09-15
  • 打赏
  • 举报
回复
我在formload有如下代码
dc.CommandText = "select * from ship"
da.SelectCommand = dc
da.Fill(ds, "ship")
dc.CommandText = "select * from hangban"
da.SelectCommand = dc
da.Fill(ds, "hangban")

ds.Tables("ship")应该是有的
ds我是放在模块里声明的
exing 2005-09-15
  • 打赏
  • 举报
回复
提示是ds.Tables("ship")为空,你跟踪一下,看这个事件在什么时候触发,这个时候,你的数据集填充了没有

另外
Dim t1 As new DataView
Dim t2 As New DataView
本不用实例化
Dim t1 As DataView
Dim t2 As DataView
就行了,当你t1= ds.Tables("ship").DefaultView时,它将获得这个对象
newmeteor 2005-09-15
  • 打赏
  • 举报
回复
你在什么时候给ds中放入东西的阿?
pupo 2005-09-15
  • 打赏
  • 举报
回复
可能是ds.Tables("ship")这个没有 ,你跟踪一下看

16,553

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧