SqlDataAdapter

giovedì 21 marzo 2013 - 17.55

jjchuck Profilo | Senior Member

domanda stupida...
nel codice che posto (funzionante...benchè forse da ottimizzare) uso un slqdataAdapter per popolare un gridview...prima usavo un reader ma in quanto tale non mi consente di fare paging...sorting...ecc

quello che non capisco è perchè nella riga sotto debbo inserire la stringa di connessione che ho già dichiarato ne configurationmanager:
sqlAdapter = New SqlDataAdapter(MyCommand.CommandText, "Data Source=xx;Initial Catalog=xx;User ID=xx;Password=xx")

non cè modo di evitare questo orrore...?

non vedo come ...ma forse dipende dalle lenticchie che fermentano nello stomaco
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

andrestu Profilo | Expert

2 soluzioni

1 - crei una classe che eredita da SqlDataAdapter e al suo interno configuri la connessione
2 - recuperi dal web.config la stringa -> ConfigurationManager.ConnectionStrings["NomeTuaConnessione"].ConnectionString

x le lenticchie non mi viene in mente una possibile soluzione, prova a vedere sull MSDN se suggerisce qualcosa...

jjchuck Profilo | Senior Member

sarà che le lenticchie ancora stanno festeggiando...e che ha appena segnato il brasile...ma mica ho capito...

cioè io già recupero dal web config la stringa e la dichiaro nella connessione...(non so se hai dato un'occhiata al codice che ho postato)
...non mi puoi fare un esempio ...una delle due soluzioni mi basta:)

...cmq ho visto che su msdn le lenticchie ereditano dalla classe legumi...che ha una superclasse...GassNaturale....:)

andrestu Profilo | Expert

scusa non avevo letto il codice.
allora sintetizzando il tutto prova a fare così:


elimina questa riga - SqlDataAdapter sqlAdapter = new SqlDataAdapter();

e sostituisci questa - sqlAdapter = new SqlDataAdapter(MyCommand.CommandText, "Data Source=xx;Initial Catalog=xx;User ID=xx;Password=xx");
con - SqlDataAdapter sqlAdapter = new SqlDataAdapter(MyCommand);





Andrea Restucci - Web Developer

jjchuck Profilo | Senior Member

ok funziona...ma prima di accettare devi dirmi perchè...spiega:)
...ho delle ipotesi ma non vorrei di c...te

ho tolto questa:
sqlAdapter = New SqlDataAdapter(MyCommand.CommandText, "Data Source=xx;Initial Catalog=xx;User ID=xx;Password=xx")
...e messo questa:
sqlAdapter = New SqlDataAdapter(MyCommand)


ps:l'oggetto session è ancora una buona pratica?

andrestu Profilo | Expert

beh intanto lo "inizializzavi" due vole e questo non serve, poi il SqlDataAdapter ha diversi overload di costruttori uno dei quali accetta anche la stringa di connessione, un altro invece direttamente il SqlCommand il quale a sua volta ha una proprietà che riguarda la stringa di connessione, quindi nel tuo caso hai configurato già il SqlCommand con la stringa...

per quanto riguarda il tuo utilizzo di session ha senso solo se la richiami anche da altre parti del codice o da altre pagine, altrimenti non serve ( GridView1.DataSource = Table )

Andrea Restucci - Web Developer

jjchuck Profilo | Senior Member

si lo richiamo per gli ordinamenti...paging...ecc...

un ultima domanda
non riesco a formattare una colonna del gridview in formato valuta
...faccio cosi ma mi da errore....
Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
If e.Row.RowType <> DataControlRowType.Header Then

If e.Row.RowType = DataControlRowType.DataRow Then

e.Row.Cells("campo1").Text = String.Format("{0:c}")

ElseIf e.Row.RowType = DataControlRowType.Footer Then

e.Row.Cells("campo1").Text = String.Format("{0:c}")
e.Row.Font.Bold = True

End If
End If
End Sub
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5