190 messaggi dal 29 settembre 2010
Buongiorno a tutti,

sul caricamento di una pagina lato server effettuo le seguenti operazioni:

"
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim stringaDiConnessione As String
stringaDiConnessione = "Provider=SQLOLEDB; data source=.\SqlExpress; initial catalog=bookstore; user id=sa; password=peppino"
Dim cn As OleDbConnection
cn = New OleDbConnection(stringaDiConnessione)
cn.Open()
Dim cmd As OleDbCommand

cmd = New OleDbCommand("SELECT * FROM [Libri]", cn)

Dim dr As OleDbDataReader
dr = cmd.ExecuteReader


'implementazione ricerca
Dim cn1 As OleDbConnection
cn1 = New OleDbConnection(stringaDiConnessione)
cn1.Open()
Dim cmd1 As OleDbCommand
cmd1 = New OleDbCommand("SELECT * FROM [Libri] WHERE pubblicazione=2010 AND mese='dicembre'", cn1)

Dim dr1 As OleDbDataReader
dr1 = cmd1.ExecuteReader

ListView1.DataSource = dr1
ListView1.DataBind()

End Sub
"

Fin qui tutto bene.
Se aggiungo alla listView un banalissimo pager
mi da la seguente segnalazione:

"
L'elemento ListView con ID 'ListView1' deve avere un'origine dati che implementi ICollection o che esegua il paging dell'origine dati se AllowPaging è true.
"

Non ne vengo fuori. Ho provato anche a ricreare la listView da zero.
Mi date una mano per favore?

Grazie a tutti!
Modificato da evjen84 il 08 aprile 2011 12.07 -
2.198 messaggi dal 30 novembre 2001
Non puoi utilizzare un datareader per il paging, devi utilizzare un dataset o un sqldatasource, visto che utilzzi sql express utilizza le classi del namespace System.Data.SqlClient, per cui SqlCommand invece di OleDbCommand.
190 messaggi dal 29 settembre 2010
per aprire la connessione?
il metodo open non viene riconosciuto...

Stessa cosa dicasi per executeReader...

Grazie
Modificato da evjen84 il 08 aprile 2011 14.19 -
190 messaggi dal 29 settembre 2010
Il tutto dovrebbe diventare:

"
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
If TextBox1.Text <> "" Then

Dim connectionString As String = "data source=.\SqlExpress; initial catalog=bookstore; user id=sa; password=peppino"

Using connection As New SqlConnection()

connection.ConnectionString = connectionString

connection.Open()

Dim cmd As SqlCommand

cmd = New SqlCommand("SELECT [isbn], [titolo], [autore], [genere], [prezzo], [immagine] FROM [Libri] WHERE isbn='" & TextBox1.Text & " ' OR titolo LIKE'%" & TextBox1.Text & " %' OR autore LIKE'%" & TextBox1.Text & " %' OR editore LIKE'%" & TextBox1.Text & " %'")

Dim dr As SqlDataSource
dr = cmd.ExecuteScalar()

ListView1.DataSource = dr
ListView1.DataBind()

End Using
"

Solo che mi dice:
ExecuteScalar: la proprietà Connection non è stata inizializzata.

Qual è il metodo da applicare a cmd?
2.198 messaggi dal 30 novembre 2001
cmd = New SqlCommand("SELECT ..", connection)

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.