Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim Conn As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("bmdnw.mdb"))
Dim Dbset As New DataSet
Dim Cnapter As OleDb.OleDbDataAdapter
Dim Dbread As OleDb.OleDbDataReader
Dim Cmd As OleDb.OleDbCommand
Dim Tn As TreeNode
Dim Ts As TreeNode
Dim SqlStr As String = "Select Distinct C_s_lx_t from C_s_lx_01"
Dim i As Int16
Dim Cul As String
Dim ArrStr() As String
Dim DBapter As New OleDb.OleDbDataAdapter(SqlStr, Conn)
DBapter.Fill(Dbset, "Tb1") For i = 0 To Me.Dbset.Tables("Tb1").Rows.Count - 1
Response.Write(Dbset.Tables("Tb1").Rows(i)(0) & "<br>")
ArrStr(i) = Dbset.Tables("Tb1").Rows(i)(0)
Next
End Sub到 ArrStr(i) = Dbset.Tables("Tb1").Rows(i)(0)的时候报错:“未将对象引用设置到对象的实例”请教这是什么原因啊?改怎么做?
Dim Conn As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("bmdnw.mdb"))
Dim Dbset As New DataSet
Dim Cnapter As OleDb.OleDbDataAdapter
Dim Dbread As OleDb.OleDbDataReader
Dim Cmd As OleDb.OleDbCommand
Dim Tn As TreeNode
Dim Ts As TreeNode
Dim SqlStr As String = "Select Distinct C_s_lx_t from C_s_lx_01"
Dim i As Int16
Dim Cul As String
Dim ArrStr() As String
Dim DBapter As New OleDb.OleDbDataAdapter(SqlStr, Conn)
DBapter.Fill(Dbset, "Tb1") For i = 0 To Me.Dbset.Tables("Tb1").Rows.Count - 1
Response.Write(Dbset.Tables("Tb1").Rows(i)(0) & "<br>")
ArrStr(i) = Dbset.Tables("Tb1").Rows(i)(0)
Next
End Sub到 ArrStr(i) = Dbset.Tables("Tb1").Rows(i)(0)的时候报错:“未将对象引用设置到对象的实例”请教这是什么原因啊?改怎么做?
加上conn.open()应该就可以了,你这里根本就没有数据,肯定会出现你说的那样的错误的
没有分配空间
ArrStr(i)有问题
Response.Write(Dbset.Tables("Tb1").Rows(i)(0) & "<br>")
ArrStr(i) = Dbset.Tables("Tb1").Rows(i)(0)
Next前面加上
ArrStr()=new string(Me.Dbset.Tables("Tb1").Rows.Count) {}
For i = 0 To Me.Dbset.Tables("Tb1").Rows.Count - 1
Response.Write(Dbset.Tables("Tb1").Rows(i)(0) & "<br>")
ArrStr(i) = Dbset.Tables("Tb1").Rows(i)(0)
Next
建议采用ArrayList就简单多了,不用给他分配空间,它自己可以调配
Dim DBapter As New OleDb.OleDbDataAdapter(SqlStr, Conn)
DBapter.Fill(Dbset, "Tb1")
----------------------
上面这几句改如下:Dim DBapter As New OleDb.OleDbDataAdapter(SqlStr, Conn)
DBapter.Fill(Dbset, "Tb1")
Dim ArrStr() As String() = new String(Me.Dbset.Tables("Tb1").Rows.Count)VB不熟,不知道是不是这样写.总体意思就是在定义的时候,初始化并同时定义它的维数