Avatar billede krestenbanke Nybegynder
30. januar 2010 - 12:37 Der er 1 kommentar og
2 løsninger

Get fra tabel med SqlDataReader

Hej,

Jeg bruger følgende til at forsøge at trække data fra en tabel, men får fejlen:
"InvalidOperationExeption -
Der blev gjort et ugyldigt forsøg på at læse, mens der ingen data var."

Kode:

SqlCommand cmd = new SqlCommand("SELECT * FROM myTable where ID = " + id, connection);
connection.Open();
SqlDataReader reader = cmd.ExecuteReader();

textAddress.Text = (string)reader["address"];

//debug:       
textField.Text = "Fieldcount: " + reader.FieldCount + " HasRows: " + reader.HasRows + " Depth: " + reader.Depth + " VisibleFCount " + reader.VisibleFieldCount;

---
Debug tekst:
Fieldcount: 14 HasRows: True Depth: 0 VisibleFCount 14

Derfor, det ser ud som, at jeg har fat i en række, men får ingen data - hvorfor?

Jeg har både prøvet med reader["enString"] og reader[3], men begge dele fejler...

Nogen der kan hjælpe?
Avatar billede janus_007 Nybegynder
30. januar 2010 - 13:07 #1
Du skal chekke at readeren har data, ja det siger næsten sig selv fra fejlen, men dvs. at du skal gøre sådan her:

while (reader.Read())
{
txtAddress.Text = (string)reader["address"];
}

Du skal tænke på at hvis der er flere rækker i tabellen vil du kun få vist den sidste i din txtAddress, det er muligt du bare sidder og fifler og bliver klogere, hvilket jo er super :) og bare vil have hul igennem!

Har du mulighed for Linq så brug det istedet :)
Avatar billede krestenbanke Nybegynder
30. januar 2010 - 13:27 #2
Fantastisk!
Det var jo bare det, der skulle til :-)

Tusind tak.

Jeg kender ikke til Linq, så det læser jeg lige op på ;-) Så tak for at henvise til det også!
Avatar billede janus_007 Nybegynder
30. januar 2010 - 14:48 #3
No problemo...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester