Leggere dato sql in VB.net

martedì 03 marzo 2009 - 15.23

$ilver Profilo | Junior Member

Ciao a tutti,
ho bisogno di leggere un dato da una query sql in VB.net .

Io ho il seguente codice:
Dim stringasql, prova As String Dim SQLConn As New SqlConnection("Data Source=;Initial Catalog=;User Id=;Password=;") Dim SQLCmd As New SqlCommand() Dim SQLdr As SqlDataReader stringasql = "SELECT tipo FROM Utenti WHERE [user]='" & Me.Text_User.Text & "'" SQLConn.Open() SQLCmd.Connection = SQLConn SQLCmd.CommandText = stringasql SQLCmd.ExecuteNonQuery() SQLdr = SQLCmd.ExecuteReader prova = SQLdr.ToString SQLConn.Close() 'Close the connection
Io devo mettere il mio risultato in prova, ma non capisco come fare a leggere il mio dato.
Scusate.
Grazie in anticipo

rossimarko Profilo | Guru

Ciao,

nel codice usi sia ExecuteNonQuery che ExecuteReader...

Ti consiglio di leggere questo breve articolo per fare un po' di chiarezza: http://aspnet.html.it/articoli/leggi/765/adonet-loggetto-command-e-il-database/

Nel tuo caso se la query ritorna un solo record e a te serve solamente la colonna tipo allora puoi usare ExecuteScalar
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

$ilver Profilo | Junior Member

Grazie mille, come al solito avevo un po di confusione in testa.

Ti ringrazio.

$ilver Profilo | Junior Member

Volevo farti ancora questa domanda,

io ho creato una classe utilita.vb dove al suo interno voglio metterci la stringa di connessione in modo tale da non dover ogni volta scriverla.

Nella mia utilita.vb ho scritto :

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

ma poi nella mia pagina quando vado a richiamare SQLConn mi da questo errore: "Il riferimento ad un membro non condiviso richiede un riferimento ad un oggetto".

Io all'inizio della pagina ho anche importato la mia classe di utilita infatti negli aiuti sqlconn mi viene fuori ma mi da errore.

Scusa per la domanda :-(

rossimarko Profilo | Guru

Detta così è un po' generica... Di solito succede quando l'oggetto è nothing, e quindi non è stato istanziato. Controlla bene in debug dove ti viene tornato l'errore e guarda se le variabili che usi sono tutte valorizzate
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

$ilver Profilo | Junior Member

mmh allora ti faccio una domanda, tu come faresti a dichiarare la connessione senza doverla scrivere in ogni pagina del proprio progetto?

rossimarko Profilo | Guru

La connessione dovresti aprirla e chiuderla solo quando serve, per motivi di performance.

Più che altro ti consiglio di fare una proprietà della tua classe che esponga la connection string e poi tutte le volte usi quella. In questo modo se un domani dovessi modificare il posto in cui la definisci basta che modifichi questa proprietà.

Oppure fai un metodo che ti ritorna la connessione già impostata (ovviamente senza aprirla)
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

$ilver Profilo | Junior Member

Esatto è quello che volevo fare, infatti ho creto il file Utilita.vb dove al suo interno ho messo

Public class Utilita

Public prova as string
Public SQLConn As New SqlConnection("Data Source=valore;Initial Catalog=valore;User Id=valore;Password=valore;")

End Class

Poi nella mia pagina ho fatto:

Imports Mioprogetto.Utilita

e quando vado a scrivere nel codice della mia pagina

SQLConn.Open() mi da quell'errore (infatti non mi fa vedere nessuna proprietà di SQLConn mentre per prova si)
Nopn capisco come mai

rossimarko Profilo | Guru

fai così, crea una funzione:
public class utilia public shared function GetConnection() as SqlConnection dim objConnection = new SqlConnection("...") return objConnection end function end class

in questo modo dovresti poter richiamare la funzione con Utilia.GetConnection()
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

$ilver Profilo | Junior Member

Ok ora va, avevo provato anche io a fare una funzione ma non avevo messo shared e forse per quello che nella mia pagina non la vedevo.
Grazie mille e scusa il disturbo
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5