I insertsidan skulle du kunna testa med detta.
Samma sak iofs men...
...
dataAdapter.Fill(dataSet, "TblGames")
Repeater1.DataSource = dataSet.defaultView
...
1 svar · 210 visningar · startad av Drogen
Inför en uppdatering av en större sajt så tänkte jag lära mig lite ASP.NET men det går inget vidare. Jag använder min dator (#1) med WinXP Pro(admin), IIS och Framework 1.1 SDK. Jag vill hämta in lite data i ett DataSet och presentera det i en DataList men får: Object reference not set to an instance of an object. Använder jag en annan metod än att gå via ett DataSet så fungerar det.
Enligt Microsoft så ska jag registrera adodb.dll i GAC (lite grekiska för mig). Men det visade sig att adodb.dll inte existerar på min maskin. Efter tips så uppdaterade jag MDAC till 2.8 och då fungerar det och adodb.dll finns!
När jag sedan skulle testa samma kod på en annan dator (#2) med Win2000 Pro (inga adminrättigheter) Framework 1.1 och WebMatrix server så fick jag samma fel. Glad i hågen så gjorde jag samma åtgärd och uppdaterade MDAC men det hjälpte inte, felet kvarstår och adodb.dll går inte att hitta. Laddar jag upp filen till mitt webbhotell så får jag samma fel.
Fungerar:
Sub Page_Load(Sender As Object, E As EventArgs)
'radbrutna koder för att inte sabba layouten på inlägget
Dim dbConnection as new OleDbConnection
("Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4;
Data Source=" & Server.MapPath("database\PlayersNGames.mdb"))
Dim queryString As String = "SELECT [TblPlayers].* FROM [TblPlayers] ORDER BY FldName"
Dim dbCommand As System.Data.IDbCommand = New System.Data.OleDb.OleDbCommand
dbCommand.CommandText = queryString
dbCommand.Connection = dbConnection
dbConnection.Open()
Datalist1.DataSource = dbCommand.ExecuteReader(CommandBehavior.CloseConnection)
Datalist1.DataBind()
End Sub
Fungerar ej:
' Insert page code here
'
Sub Page_Load(sender As Object, e As EventArgs)
Dim connectionString As String
= "Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; Data Source=
" & Server.MapPath("database\PlayersNGames.mdb")
Dim dbConnection As System.Data.IDbConnection = New System.Data.OleDb.OleDbConnection(connectionString)
Dim queryString As String = "SELECT [TblGames].* FROM [TblGames]"
Dim dbCommand As System.Data.IDbCommand = New System.Data.OleDb.OleDbCommand
dbCommand.CommandText = queryString
dbCommand.Connection = dbConnection
Dim dataAdapter As System.Data.IDbDataAdapter = New System.Data.OleDb.OleDbDataAdapter
dataAdapter.SelectCommand = dbCommand
Dim dataSet As System.Data.DataSet = New System.Data.DataSet
dataAdapter.Fill(dataSet)
Repeater1.DataSource = dataSet.Tables("TblGames").DefaultView '###Felmeddelandet på denna rad###
Repeater1.DataBind()
End Sub
När jag sedan åter startar dator #1 efter några timmar så är felet tillbaka och adodb.dll går inte att hitta längre! Hur går jag vidare?
I insertsidan skulle du kunna testa med detta.
Samma sak iofs men...
...
dataAdapter.Fill(dataSet, "TblGames")
Repeater1.DataSource = dataSet.defaultView
...