私は現在、学校のプロジェクトの Web ページのコーディングに取り組んでいます。このサイトは、アートワークのプリントを注文できるシンプルなオンライン ストアであるはずです。私が取り組んでいる特定のページには、データベースにバインドされたドロップダウン リスト (ddlArt) があり、利用可能なさまざまなアート作品のリストが表示されます。ユーザーがアイテムの 1 つを選択すると、そのアイテムに関するすべての情報がデータベースから取得され、さまざまなラベルなどでページに表示されます。唯一のことは、ページを実行しようとすると、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」という null 参照例外エラーが発生することです。今年の初めに宿題で同じエラーが発生し、なんとか修正できましたが、何をしたか思い出せず、来週まで学校から助けを得ることができないので、私は思った. ここで私の運を試してください。これが私のコードです:
Private selectedArt As Art
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
ddlArt.DataBind()
End If
selectedArt = Me.GetSelectedArt
lblArtID.Text = selectedArt.ArtID()
lblArtName.Text = selectedArt.ArtName()
lblCaption.Text = selectedArt.Caption()
lblDescription.Text = selectedArt.Description()
imgArt.ImageUrl = "~/images/" & selectedArt.FileName()
End Sub
Private Function GetSelectedArt() As Art
Dim artTable As DataView = CType(SqlDataSource1.Select(DataSourceSelectArguments.Empty), DataView)
artTable.RowFilter = "ArtID = '" & ddlArt.SelectedValue & "'"
Dim artRow As DataRowView = artTable(0)
Me.imgArt.ImageUrl = "~/images/" & artRow("FileName")
Dim art As New Art
art.ArtID = artRow("ArtID").ToString
art.ArtName = artRow("ArtName").ToString
art.Caption = artRow("Caption").ToString
art.Description = artRow("LongDescription").ToString
art.FileName = artRow("FileName").ToString
Return art
End Function
興味のある方のために、 Art クラスのコードを次に示します。
Public Class Art
Public Property ArtID As Integer
Public Property ArtName As String
Public Property ArtType As String
Public Property Caption As String
Public Property FileName As String
Public Property Description As String
End Class
エラーが発生するとartTable.RowFilter = "ArtID = '" & ddlArt.SelectedValue & "'"
、GetSelectedArt 関数の行が強調表示されます。私が言及した修正された宿題と比較してみましたが、問題が見つからないようです. 実際にクラスを受講してからしばらく経っているため、私の VB は少しぼやけています。助言がありますか?本当にありがとう!