Ciao.
Il tuo codice è quasi corretto. Manca l'istruzione GridView2.DataBind(), la visualizzazione degli errori, la chiusura assicurata della connessione.
Usando il mio database, tabella regioni, il tuo codice è:
Private Sub prove_a_Load(sender As Object, e As EventArgs) Handles Me.Load
Dim sql As String
Dim ricerca As String
Dim con = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\dati\test\test.mdb")
con.Open()
' immetto i dati nella Grid1
Try
If (Page.IsPostBack) Then
ricerca = " WHERE codice_istat_regione='20' "
sql = "SELECT * FROM regioni " + ricerca
Else
sql = "SELECT * FROM regioni "
End If
Dim da = New OleDb.OleDbDataAdapter(sql, con)
Dim ds As New DataSet
da.Fill(ds)
GridView2.DataSource = ds.Tables(0)
GridView2.DataBind()
Catch ex As Exception
Me.Label1.Text = HttpUtility.HtmlEncode(ex.Message).Replace(ControlChars.NewLine, "<br />").Replace(ControlChars.Lf, "<br />").Replace(ControlChars.Cr, "<br />")
End Try
con.Close()
End Sub
qualche piccolo cambiamento. Nota il blocco Finally e la procedura riutilizzabile per acquisire il DataTable (il dataset non lo uso da un pezzo)
Option Strict On
Imports o = System.Data.OleDb
Partial Class prove_a1
Inherits System.Web.UI.Page
Private Sub prove_a1_Load(sender As Object, e As EventArgs) Handles Me.Load
Dim ricerca As String = ""
If Me.IsPostBack Then
ricerca = "codice_istat_regione='20' "
Else
ricerca = "1=1"
End If
Dim con As o.OleDbConnection = Nothing
Dim sql As String = ""
Try
Dim StringaConnessione As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\dati\test\test.mdb"
con = New OleDb.OleDbConnection(StringaConnessione)
con.Open()
sql = "SELECT * FROM regioni where " & ricerca
Dim dt As DataTable = GetDataTable(con, sql)
GridView2.DataSource = dt
GridView2.DataBind()
Catch ex As Exception
Me.Label1.Text = HttpUtility.HtmlEncode(ex.Message).Replace(ControlChars.NewLine, "<br />").Replace(ControlChars.Lf, "<br />").Replace(ControlChars.Cr, "<br />")
Finally
'chiudo sempre e comunque la connessione
If con IsNot Nothing Then con.Close()
End Try
End Sub
'-------------------------------------------------------------------------------------
'Restituisce un oggetto DataTable o lancia eccezione in caso di errore
'parametri: connessione, stringa sql
'-------------------------------------------------------------------------------------
Public Function GetDataTable(Connessione As OleDbConnection, ByVal stringaSQL As String) As DataTable
Try
'creo un nuovo DataAdapter
Dim DataAdapter As New OleDbDataAdapter(stringaSQL, Connessione)
'creo un DataSet e lo riempio con i dati
Dim DataSet As New DataSet
'DataAdapter.FillSchema(DataSet, SchemaType.Source)
DataAdapter.Fill(DataSet, "sql")
Return DataSet.Tables("sql")
Catch Errore As Exception
Throw
End Try
End Function
End Class
ps.DIMENTICAVO: il sito deve essere necessariamente a 32bit!
Modificato da pietro09 il 09 giugno 2019 16:19 -
Modificato da pietro09 il 10 giugno 2019 12:37 -
Modificato da pietro09 il 10 giugno 2019 12:38 -