チケットシステムを作成しようとしていますが、システムのこの部分には、それぞれの特定の日に実行されているすべての動作が表示されます。私はまた、いくつのチケット/座席が利用可能であるかを示すよう努めています。私はすべての席の場所とブール値を持つデータベースを持っているかどうかを示しています。エラー - オブジェクト参照がオブジェクトのインスタンスに設定されていません
Public ds As New DataSet 'used to store the basic elements of the database
Public con As New OleDb.OleDbConnection 'used to connect to the database
Public provider As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source ="
Public datafile As String = "Resources/database.accdb" 'database location and version
Public da As OleDb.OleDbDataAdapter
Public sqlstatement As String
Public connString As String = provider & datafile
lbxActs.Items.Clear()
Dim oDataRowView As DataRowView
Dim sSelectedAssetType As String
ds.Clear()
con.ConnectionString = connString
con.Open()
sqlstatement = "SELECT ShowDate FROM AvailableDates"
da = New OleDb.OleDbDataAdapter(sqlstatement, con)
da.Fill(ds, "Dates")
lbxDates.DataSource = ds.Tables("Dates")
lbxDates.DisplayMember = "ShowDate"
lbxDates.ValueMember = "ShowDate"
con.Close()
oDataRowView = CType(Me.lbxDates.SelectedItem, DataRowView)
sSelectedAssetType = oDataRowView("ShowDate").ToString
lbxActs.Items.AddRange(IO.File.ReadAllLines("Resources/" & sSelectedAssetType & ".txt"))
con.Close()
ds.Clear()
con.ConnectionString = connString
con.Open() 'Open connection to the database
sqlstatement = "SELECT * FROM [Seats" & sSelectedAssetType & "] WHERE [Available] = True "
da = New OleDb.OleDbDataAdapter(sqlstatement, con)
da.Fill(ds, "seats") 'Fill the data adapter
con.Close()
Dim recordCount, x As Short
recordCount = 0
x = 0
recordCount = ds.Tables("seats").Rows.Count
tbxLeftS.Text = recordCount
プログラムの最初の部分は、1つは、それが私のテキストファイルからの行為の別のリストを示しクリックされたかに応じて、リストボックスにすべてのショーの日付を置きます。プログラムの2番目の部分は、SQLステートメントを使用して、利用可能なすべての座席場所を見つけることになっています。次に、レコードを数え、テキストボックスに数値を表示します。
Object reference not set to an instance of an object
このエラーが4回表示され、それがこの行をハイライトする:
sSelectedAssetType = oDataRowView("ShowDate").ToString
'oDataRowView(" ShowDate ")'は 'Nothing'です – Ian
おそらく何も選択されていません –
Iveはコードを編集しました。私は何かを含めるのを忘れました – chandler