100分相赠!关于用绑定了数据的ListBox读取数据的问题
下面是我写的代码:
aspx文件代码:
<form id="form1" runat="server">
<div>
<asp:ListBox runat="server" CssClass="input_TextBox" ID="EquipmentName" Rows="1" />
<br />
<asp:Button ID="button1" runat="server" Text="提交" />
<br />
<asp:Label id="msg" runat="server" ForeColor="#FF0000" />
</div>
</form>
aspx.vb文件代码:
Imports System.Data
Imports System.Data.OleDb
Partial Class equipment_test
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
Dim MyConn As OleDbConnection, MyAdpt As OleDbDataAdapter
Dim MyDs As DataSet, MySql As String
MyConn = New OleDbConnection(ConfigurationManager.AppSettings("AccessString") & _
System.Web.HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings("DataBase")))
MyConn.Open()
MySql = "Select * from Equipment_Type order by id"
MyAdpt = New OleDbDataAdapter(MySql, MyConn)
MyDs = New DataSet
MyAdpt.Fill(MyDs, "Equipment_type")
EquipmentName.DataSource = MyDs.Tables("equipment_type")
EquipmentName.DataTextField = "EquipmentsName"
EquipmentName.DataValueField = "EquipmentsID"
EquipmentName.DataBind()
End Sub
Protected Sub button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles button1.Click
msg.Text = EquipmentName.SelectedItem.Text
End Sub
End Class
运行该段代码时,系统提示:
未将对象引用设置到对象的实例在调试的时候,系统提示:
用户代码未处理 NullReferenceException
排错提示:
使用“new”关键字创建对象实例。在调用方法前通过检查确定对象是否为空。
我该怎么办?
谢谢!
------解决方案--------------------对VB.net不熟悉哈.
只能提供点思路:
估计是
MyConn = New OleDbConnection(ConfigurationManager.AppSettings( "AccessString ") & _
System.Web.HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings( "DataBase ")))
这个有错了,你跟踪一下看看就知道了
还有
MyDs = New DataSet //这里VB.net的语法对吗
------解决方案--------------------你有在listbox中选择一个吗?
listbox默认好像一个也不选的吧。。
要选择一个才可以啊,如果允许选多个的话,你要组合处理后再输出的。。
------解决方案--------------------如果是运行页面的时候就出现了异常,看看下面的代码:
MyAdpt.Fill(MyDs, "Equipment_type ")
EquipmentName.DataSource = MyDs.Tables( "equipment_type ")
你fill的时候命名的虚拟表名和你引用的不一致,引用的时候变为小写的E了
如果是提交的时候出现的问题,可以参考楼上的说法,有可能是因为你没有选择listbox中的项的原因,默认情况下它的SelectItem应该是空的吧。
------解决方案--------------------断点调试,看看是那个变量没有实例化?
------解决方案--------------------MyDs = New DataSet --这句明显错误+()
在查询分析器看看Select * from Equipment_Type order by id有没有数据
有没有EquipmentsName & EquipmentsID字段
Connection 有没有错,能Open()吗?
最后用断点调试一下...
ps:为什么不用datareader?
------解决方案--------------------绑定的时候
if notispostback then
'这边 绑定
end if
不然,你点button的时候,页面又刷了一下