Errore nella lettura dati da un db sql server 2005

venerdì 21 agosto 2009 - 15.00

PaoloG Profilo | Newbie

Salve a tutti mi sono da appena iscritto a questo forum.
Ho da poco iniziato a programmare con il C# 2008 Express e volevo fare un piccola applicazione per imparare ad utilizzare le classi per la gestione di basi di dati.
Veniamo al sodo, prima vi posto il mio codice e poi vi dico quale problema ho incontrato :

// dichiarazione delle variabili
SqlDataReader SQL;
SqlConnection Connessione;
SqlCommand CMD;

// connessione al DB
Connessione = new SqlConnection();
Connessione.ConnectionString = "Data Source =nome_server; Initial Catalog = nome_DB; Integrated Security = SSPI";
Connessione.Open()

// lettura di un rigo dalla tabella TB_Server
CMD.CommandText = "Select * from TB_Server where ID=1";
SQL = CMD.ExecuteReader();

Nel momento in cui esegue "SQL = CMD.ExecuteReader();" mi da questo errore ="Tentativo non valido di lettura in assenza di dati"

Io ho controllato nel DB: nella tabella TB_Server ci sono 3 righi tra cui quello cercato nella query.

Dove ho sbalgiato non riesco proprio a capire.
Mi rendo conto di aver posto un problema per molti stupido ma spero che qualcuno mi aiuti lo stesso.
Ciao Paolo

lbenaglia Profilo | Guru

>// dichiarazione delle variabili
>SqlDataReader SQL;
>SqlConnection Connessione;
>SqlCommand CMD;
>
>// connessione al DB
>Connessione = new SqlConnection();
>Connessione.ConnectionString = "Data Source =nome_server; Initial
>Catalog = nome_DB; Integrated Security = SSPI";
>Connessione.Open()
>
>// lettura di un rigo dalla tabella TB_Server
>CMD.CommandText = "Select * from TB_Server where ID=1";
>SQL = CMD.ExecuteReader();
>
>Nel momento in cui esegue "SQL = CMD.ExecuteReader();" mi da
>questo errore ="Tentativo non valido di lettura in assenza di
>dati"

Ciao Paolo,

Non hai creato una associazione tra il Command e la Connection.
Qui trovi un esempio di query parametrica:
http://www.dotnethell.it/forum/ShowCode.aspx?MessageID=52053&Frag=1

Modifica il comando di SELECT sostituendolo con il tuo e tralascia la sezione:

/* Definisco il parametro di input */ cmd.Parameters.Add(new SqlParameter("@FirstName", System.Data.SqlDbType.VarChar, 10)); cmd.Parameters["@FirstName"].Value = "%" + firstName + "%";

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

PaoloG Profilo | Newbie

grazie per la risposta
adesso non posso provare ma domani lo farò sicuro
se mai avessi altri problemi ti chiederò altre info
grazie di tutto paolo
Paolo Giovanelli

PaoloG Profilo | Newbie

Era esattamente quello il problema.
Adesso tutto funziona a dovere.
Volevo chiederti un 'ultima cosa.
Io ho installato SQL Server sul mio portatile e se lancio il programma in locale mi si connette senza problemi.
Ho provato a copiare e a lanciare il prgramma dal PC Desktop ( che è collegato tramite modem-router ADSL di Alice al Portatile)
ma mi da errore Server SQL non trovato
La mia connection String è:
"Data Source =VAIO\\SQLEXPRESS; Initial Catalog = DB_Service; Integrated Security = SSPI"

dove Vaio\SQlExpress è il nome del server.

Cosa sbaglio?
Ciao Paolo
Paolo Giovanelli

lbenaglia Profilo | Guru

>Cosa sbaglio?

Ciao Paolo,

Fai riferimento a questo thread:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=10971

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

PaoloG Profilo | Newbie

ho seguito il tuo consiglio e tutto funziona a meraviglia
grazie della tua disponibilità e complimenti per la competenza in materia.
Ciao Paolo
Paolo Giovanelli
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