1 messaggio dal 09 giugno 2019
Ciao a tutti. Da pochissimo mi sono avvicinato al mondo ASP.

Tanto per esercitarmi volevo fare una progetto WEB con una pagina che legge i dati da un database access e poi carica i dati su una Grid da visualizzare. Alla pressione del button submit la query contenente i dati dovrebbe venire filtrata.
Il problema è che avviando la app non viene visualizzato nulla

Vi posto il semplice codice VB che sta dietro la pagina web:

Public Class WebForm1


Inherits System.Web.UI.Page


Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.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:\Users\marco\Desktop\db1.mdb")
con.Open()

' immetto i dati nella Grid1
Try
If (Page.IsPostBack) Then

ricerca = " WHERE IdOds=1"

sql = "SELECT * FROM Ods_Dati " + ricerca

Else

sql = "SELECT * FROM Ods_Dati "

End If

Dim da = New OleDb.OleDbDataAdapter(sql, con)

Dim ds As New DataSet
da.Fill(ds)

GridView2.DataSource = ds.Tables(0)

Catch ex As Exception

End Try

con.Close()

End Sub

Se qualcuno ha voglia di dirmi dove sbaglio.....


Grazie mille
Modificato da MBlackmore il 09 giugno 2019 14:17 -
3.939 messaggi dal 28 gennaio 2003
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 -

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.