2 messaggi dal 29 gennaio 2018
Buongiorno.
Per altre esigenze ho dovuto reinstallare il S.O. e di conseguenza Visual Studio 2017 + MySql.

Caricando la soluzione che ho sviluppato in vb.net ho però riscontrato, pur non modificando nemmeno una riga, un errore a cui non riesco a venire a capo. Prima di reinstallare tutto ovviamente ha sempre funzionato.

nota: la connessione con mysql funziona, riesco a ricavare qualsiasi dato da qualsiasi tabella, ergo credo che il problema sia sul binding della gridview. La cosa assurda è che lo stesso codice ha sempre funzionato prima di reinstallare VS+MySQL!!

 <asp:GridView ID="elencoSoci" runat="server" AutoGenerateColumns="False" DataKeyNames="id_socio"
                        OnSelectedIndexChanged = "OnSelectedIndexChanged"
                        OnRowDataBound = "OnRowDataBound"
                        EmptyDataText="Nessun socio trovato" 
                        DataSourceID="MySqlDataSource" CellPadding="3" ForeColor="#333333" 
                        AllowSorting="True" style="font-family: Verdana; font-size: x-small" ShowHeaderWhenEmpty="True" BorderColor="Black" BorderStyle="Solid" BorderWidth="1px">
            <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
            <Columns>
                <asp:CommandField ButtonType="Link" ItemStyle-Width="150" ShowSelectButton="True" SelectText="dettagli">
                <ItemStyle Width="70px" />
                </asp:CommandField>
                <asp:BoundField DataField="tessera" HeaderText="Tessera" SortExpression="tessera" ItemStyle-HorizontalAlign="Center" >
                <ItemStyle HorizontalAlign="Center" />
                </asp:BoundField>
                <asp:BoundField DataField="cognome" HeaderText="Cognome" SortExpression="cognome"/>
                <asp:BoundField DataField="nome" HeaderText="Nome" SortExpression="nome" />
                <asp:BoundField DataField="data_nascita" HeaderText="Data di nascita" DataFormatString="{0:dd/MM/yyyy}" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="120px" />
                <asp:BoundField DataField="data_iscrizione" HeaderText="Iscrizione" DataFormatString="{0:dd/MM/yyyy}" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="120px" />
                <asp:BoundField DataField="data_certificato_fine" HeaderText="Certificato" DataFormatString="{0:dd/MM/yyyy}" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="120px"/>
                <asp:BoundField DataField="stato" HeaderText="Stato"  HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="80px"/>
            </Columns>
            <EditRowStyle BackColor="#999999" />
            <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
            <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" HorizontalAlign="Left" />
            <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
            <RowStyle BackColor="#F7F6F3" ForeColor="#333333" HorizontalAlign="Left" />
        </asp:GridView>


        <asp:SqlDataSource ID="MySqlDataSource" runat="server"  
            ProviderName="MySql.Data.MySqlClient" 
            SelectCommand="SELECT * FROM soci">
        </asp:SqlDataSource>


'### PAGE LOAD
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load

        'imposta le connectionstring dei MySqlDataSource
        set_CS()

        If Page.IsPostBack = False Then
            MySqlDataSource.SelectCommand = "SELECT * FROM soci WHERE stato='Attivo'"
            elencoSoci.DataBind()
            elencoSoci.Sort("cognome", SortDirection.Ascending)
        End If

    End Sub


L'errore è:
Riferimento ad un oggetto non impostato su istanza di un oggetto su
elencoSoci.DataBind()

Anticipatamente ringrazio
2 messaggi dal 29 gennaio 2018
Altro appunto: usando MSSQL il binding funziona.

'### PAGE LOAD
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load

        'imposta le connectionstring dei MySqlDataSource
        set_CS()

        If Page.IsPostBack = False Then
             MySqlDataSource.ConnectionString = "Server=.\SQLEXPRESS;Database=database;User Id=utente;Password=password;"
            MySqlDataSource.SelectCommand = "SELECT * FROM soci WHERE stato='Attivo'"
            elencoSoci.DataBind()
            elencoSoci.Sort("cognome", SortDirection.Ascending)
        End If

    End Sub

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.