Fehler "ExecuteReader: connection-Eigenschaft wurde nicht initialisiert."
Hier ist mein code. Ich kann nicht scheinen, um herauszufinden, was diesen Fehler verursacht. Den Fehler selbst wies auf die Do While myReader.read
Zeile code, aber ich bin mir nicht sicher, was das problem verursacht.
Hier ist eine detailiertere Fehlermeldung:
executereader: connection-Eigenschaft wurde nicht initialisiert. system.Daten.oledb.oledbcommand.validateconnection(string method) bei system.Daten.oledb.oledbcommand.validateconnectionandtransaction(string Methode)
Code:
Imports System.Data.OleDb
Imports System.Data
Partial Class Customer_6_OrderHistory
Inherits System.Web.UI.Page
Private myDB As OleDbConnection
Private sqlCmd As OleDbCommand
Private myReader As OleDbDataReader
Private myConnection As String = ConfigurationManager.ConnectionStrings("ConnString10").ToString
Private myDataFile As String = ConfigurationSettings.AppSettings("DBFile")
Private LegoNameList As New ArrayList
Private ShipmentDateList As New ArrayList
Private CostList As New ArrayList
Private NumberPurchasedList As New ArrayList
Private RecipientList As New ArrayList
Private TotalCostList As New ArrayList
Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
myDB = New OleDbConnection(myConnection)
sqlCmd = New OleDbCommand("exec qry_OrderHistory")
sqlCmd.Parameters.AddWithValue("@CustomerName", Session("myCart").GetCustomerName())
Try
myDB.Open()
myReader = sqlCmd.ExecuteReader
Do While myReader.Read
LegoNameList.Add(myReader("Lego Name"))
ShipmentDateList.Add(myReader("Date"))
CostList.Add(myReader("Cost"))
NumberPurchasedList.Add(myReader("Number Purchased"))
RecipientList.Add(myReader("Recipient"))
TotalCostList.Add(myReader("Total Cost"))
Loop
myReader.Close()
Catch ex As Exception
MsgBox(ex.ToString)
Finally
myDB.Close()
End Try
Dim myDataTable As New DataTable
myDataTable.Columns.Add("Lego Name")
myDataTable.Columns.Add("Date")
myDataTable.Columns.Add("Cost")
myDataTable.Columns.Add("Number Purchased")
myDataTable.Columns.Add("Recipient")
myDataTable.Columns.Add("Total Cost")
For i = 0 To LegoNameList.Count - 1
Dim myRow As DataRow = myDataTable.NewRow
myRow.Item("Lego Name") = LegoNameList.Item(i)
myRow.Item("Date") = FormatDateTime(ShipmentDateList.Item(i), DateFormat.ShortDate)
myRow.Item("Cost") = FormatCurrency(CostList.Item(i), 2, TriState.True, TriState.False, TriState.True)
myRow.Item("Number Purchased") = NumberPurchasedList.Item(i)
myRow.Item("Recipient") = RecipientList.Item(i)
myRow.Item("Total Cost") = FormatCurrency(TotalCostList.Item(i), 2, TriState.True, TriState.False, TriState.True)
myDataTable.Rows.Add(myRow)
Next
gvwOrderHistory.DataSource = myDataTable
gvwOrderHistory.DataBind()
End Sub
End Class
- Ihnen nie vergeben Ihre Verbindung zu den OleDBCommand, die ist, warum Sie immer die Fehler. Versuchen Sie so etwas wie
sqlCmd.Connection = myDB
odersqlCommand = New OleDbCommand("exec qry_OrderHistory", myDB)
- Der Community user stieß diese Frage wieder auf die Startseite, so dass die Antworten geprüft werden würde. Sie sollte upvote und/oder übernehmen Sie eine Antwort, die geholfen hat, dieses Problem zu lösen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie die Verbindung erstellt haben, und dann erstellen Sie einen Befehl, aber man kann nie zuordnen, die Verbindung zu Ihrem Befehl, die ist, warum Sie immer die Fehler. Sie können entweder weisen Sie die Verbindung zu Ihrem
OleDbCommand
wie diese:Oder Sie können angeben, in die
OleDbCommand
Konstruktors, wie hier:Dann können Sie öffnen Sie die Verbindung und führen Sie den Befehl.
Haben Sie zu initialisieren, Ihr Bindegewebe Instanz
myConnection
bevor Sie es verwenden,