---
title: "FieldCount?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/78289-fieldcount"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Josef"
published: "2003-05-27T21:41:22.000Z"
updated: "2003-05-28T20:42:13.000Z"
replies: 8
views: 341
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/78289-fieldcount"
---

# FieldCount?

## #1 — Josef, 2003-05-27T21:41Z

```
Exception Details: System.InvalidOperationException: Invalid attempt to FieldCount when reader is closed.
```

```
[b]Source Error: [/b]

Line 36: 			int _si = Convert.ToInt16(catlist.SelectedItem.Value);
Line 37: 			dgLinks.DataSource = BL.getLinkList(_si);
Line 38: 			DataBind();
Line 39: 		}
```

Jag förstår inte varför jag får det här felet hela tiden. Får felet på rad 38 (*DataBind()*). Vad är det här FieldCount för någonting?

Permalänk: https://www.webforum.nu/p/78289

## #2 — Gladh, 2003-05-28T06:38Z

BL.getLinkList() är en funktion som returnerar en DataReader?

Om det är det så for du inte stänga din koppling till databasen för då stänger du DataReadern med. 

Så visa hur din getLinkList() ser ut så kan vi hjälpa dig bättre.

\- m

Permalänk: https://www.webforum.nu/p/1066072

## #3 — Josef, 2003-05-28T06:58Z

Aha! Det förklarar saken. Men hur ska jag lösa det utan att behöva stänga kopplingen på cb-sidan?

Permalänk: https://www.webforum.nu/p/1066079

## #4 — erka, 2003-05-28T07:21Z

Finns några alternativ, lägg det i en arraylist istället för i en datareader. 

Varför vill du inte stänga kopplingen på codebehind sidan ?

Permalänk: https://www.webforum.nu/p/1066087

## #5 — Josef, 2003-05-28T08:11Z

Skulle helst vilja ha sådana kommandon i DataAccess-klassen där metoden ReciveDataReader finns. Ser mycket "renare" ut på det sättet.

Ska beakta ditt förslag på ArrayList.
Återkommer...

Permalänk: https://www.webforum.nu/p/1066119

## #6 — erka, 2003-05-28T08:22Z

Du kan ju göra på följande sätt. Ha en funktion som returnerar en datareader till lagret under dataaccess, du behåller kopplingen till dbn öppen, sen när du har lagt över datareaderni någon annan typ av "datahållare" anropar du en funktion i DataAccess som stänger anslutningen, vilket jag antar att du redan har, som du kanske anropar från funktioner som ReciveDataReader tex.

Permalänk: https://www.webforum.nu/p/1066126

## #7 — P, 2003-05-28T09:04Z

Annars finns ju datatablen...

Permalänk: https://www.webforum.nu/p/1066145

## #8 — Gladh, 2003-05-28T13:22Z

Det du gör är att du inte stänger din koppling någonstans :)

Du skickar istället med ett CommandBehavior.CloseConnection när du kör din ExecuteReader(). Vilket då gör att din koppling till databasen är öppen så länge dit readerobjekt inte är stängt.

Sedan när du har bundit objektet till din control så stänger du reader objectet'

```
int _si = Convert.ToInt16(catlist.SelectedItem.Value);
SqlDataReader oReader = BL.getLinkList(_si);
dgLinks.DataSource = oReader;
DataBind();

oReader.Close(); //-- detta tillsammans med CommandBehavior.CloseConnection stänger din koppling till databasen.
```

\- M

Permalänk: https://www.webforum.nu/p/1066346

## #9 — Josef, 2003-05-28T20:42Z

Det fick bli Gladh´s lösning.

Tackar! :)

Permalänk: https://www.webforum.nu/p/1066627

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/78289-fieldcount
