2016-06-07 6 views
0

Ich erstelle ein Programm zum Buchen von Tickets für eine schulische Leistung, dieser Codeabschnitt zeigt Daten aus einer Datenbank in einem Listenfeld an, dann erhält es den ausgewählten Wert und prüft die Datenbank mit diesem Namen für die verfügbaren Plätze.FEHLER - Befehlstext wurde für das Befehlsobjekt nicht gesetzt

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 = New OleDb.OleDbDataAdapter(sqlstatement, con) 
Public sqlstatement As String 
Public connString As String = provider & datafile 
Public UserbeingEdited As String 
Public sSelectedAssetType As String 


ds.Clear() 
    con.ConnectionString = connString 
    con.Open() 
    sqlstatement = "SELECT ShowDate FROM AvailableDates" 
    da.Fill(ds, "Dates") 

    lbxDates.ValueMember = "ShowDate" 
    lbxDates.DisplayMember = "ShowDate" 
    lbxDates.DataSource = ds.Tables("Dates") 
    con.Close() 

Private Sub lbxDates_SelectedValueChanged(sender As Object, e As EventArgs) Handles lbxDates.SelectedValueChanged 
    Dim oDataRowView As DataRowView = CType(Me.lbxDates.SelectedItem, DataRowView) 
    lbxActs.Items.Clear() 
    lbxActs.Items.AddRange(IO.File.ReadAllLines("Resources/" & sSelectedAssetType & ".txt")) 
    sSelectedAssetType = oDataRowView("ShowDate").ToString 
    For Each btn As Control In Seating_Plan.Controls 
     If checkSeats(btn.Name()) = "True" Then 
      SeatCount = SeatCount + 1 
     End If 
    Next 

Ich erhalte diesen Fehler und ich weiß nicht, wie es zu beheben, bitte helfen :)

Antwort

0

Der Inhalt eines String-Objekt nicht geändert werden kann, nachdem das Objekt erstellt wird. Wenn Sie eine Variable verwenden möchten, um die SQL-Abfrage zu speichern, wird die Variable erstellt und ihr Wert festgelegt, bevor sie OleDbDataAdapter zugewiesen wird.

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 
Public UserbeingEdited As String 
Public sSelectedAssetType As String 


    ds.Clear() 
    con.ConnectionString = connString 
    con.Open() 
    sqlstatement = "SELECT ShowDate FROM AvailableDates" 
    da = new OleDb.OleDbDataAdapter(sqlstatement,cn) 
    da.Fill(ds, "Dates") 

    lbxDates.ValueMember = "ShowDate" 
    lbxDates.DisplayMember = "ShowDate" 
    lbxDates.DataSource = ds.Tables("Dates") 
    con.Close() 
+0

danke. funktioniert jetzt! – chandler

Verwandte Themen