数据集为NULL。
我想学习和理解Visual Basic 2017。 在测试webform上,一些文本框中填充了数据集(DS)项(在页面加载期间)。 这没有问题。
表单上还有一个SAVE按钮,在单击后必须用文本框填充数据集项。 但是数据集似乎是NULL。 怎么可能? 我希望有人可以告诉我出了什么问题,我知道数据集在运行时会保持dukkws。
点击SAVE按钮后出现此错误:======================================= === System.NullReferenceException:未将对象引用设置为对象的实例。 在S:\ P2 S中的NW_DB_update_test.NWtest.testDS()测试\ NW DB
你的VB soutce是==================================
选项明确开启 Option Strict On
导入System.Data.SqlClient
Public Class NWtest 继承System.Web.UI.Page
Public DA As SqlDataAdapter
Public DS As System.Data.DataSet
Public CB As SqlCommandBuilder
Public Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
Call GETNWDS()
Call testDS()
End If
End Sub
Public Sub GETNWDS()
'' opencustumorDataAdapterdaaset DS
Dim connectionString = ConfigurationManager.ConnectionStrings("NW testConnectionString").ConnectionString
Dim queryString As String = "SELECT CustomerID, CompanyName, ContactName FROM Customers where CustomerID='ALFKI'"
Dim conn As New SqlConnection(connectionString)
DA = New SqlDataAdapter(queryString, conn)
DS = New System.Data.DataSet
DA.Fill(DS)
CustomerIDbox.Text = DS.Tables(0).Rows(0).Item("CustomerID").ToString
CompanyNamebox.Text = DS.Tables(0).Rows(0).Item("CompanyName").ToString
ContactNamebox.Text = DS.Tables(0).Rows(0).Item("ContactName").ToString
End Sub
Public Sub testDS()
Try
Dim v As String
v = "in DS= " + DS.Tables(0).Rows(0).Item("ContactName").ToString
Textbox.Text = v
'Error after clicking the save button:
' System.NullReferenceException
' Object reference Not set to an instance of an object.
' at NW_DB_update_test.NWtest.testDS() in S: \P2 S VS tests\NW DB update test\NW DB update test\NWtest.aspx.vb:line 46
Catch x As Exception
Textbox.Text = x.ToString
End Try
End Sub
结束班
=============================================== =========================================
答案 0 :(得分:0)
我不确定你想要实现什么,但正如ADyson所解释的那样,你在页面加载时声明的变量在回发后是不存在的。另一方面,如果你只想阅读ContactName
,你可以直接从它写入的文本框中获取它,因为如果没有另外说明,控件会在回发之间保持不变。
Textbox.Text=ContactNamebox.Text