Hallo Claudius,

vielen Dank f�r deine interessanten Antworten.

Folgender Code funktioniert nicht:

                private void SetDdlDatabaseObject()
                {
                        SqlDataReader dr =
SqlHelper.ExecuteReader((SqlConnection)Session["SqlConn"],"uspGetDatabaseObj
ectAct", null);
                        int i = 0;
                        while(dr.Read())
                        {
                                i++;
                        }
                        if(i > 1)
                        {
                                ddlDatabaseObject.DataSource = dr;
                                ddlDatabaseObject.DataValueField =
"DatabaseObjectId";
                                ddlDatabaseObject.DataTextField = "Name";
                                ddlDatabaseObject.DataBind();
                                // Insert message to select an item
                                ddlDatabaseObject.Items.Insert(0, liSelect);
                        }
                        ...
                        dr.Close();
                }

Obwohl die Bedingung i > 1 erreicht wird, landet au�er liSelect nichts im
Dropdown, was ich nicht verstehe.

Diese Alternative:

                        int i = 0;
                        SqlDataReader dr =
SqlHelper.ExecuteReader((SqlConnection)Session["SqlConn"],"uspGetDevelopment
LevelAct", null);
                        while(dr.Read())
                        {
                                i++;
                                ddlDevelopmentLevel.DataSource = dr;
                                ddlDevelopmentLevel.DataValueField =
"DevelopmentLevelId";
                                ddlDevelopmentLevel.DataTextField = "Name";
                                ddlDevelopmentLevel.DataBind();
                        }
                        if(i > 1)
                                //if(dr.HasRows)
                        {
                        }
                        dr.Close();

bringt bereits in der while-Zeile den Fehler, dass der Reader geschlossen
w�re - was ich noch weniger verstehe.

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
Behalf Of Claudius Ceteras
Sent: Monday, April 18, 2005 7:06 PM
To: [email protected]
Subject: RE: [Asp.net] DataReader: Anzahl der Zeilen

> SqlDataReader dr =
> SqlHelper.ExecuteReader((SqlConnection)Session["SqlConn"],"usp
> GetDatabaseObj
> ectAct", null);

Connection bitte nicht in Sessions speichern. Jedes mal neu �ffnen und
schliessen. Das Pooling sorgt f�r Performance.

Entweder so:

> int i = 0;
> while(dr.Read())
> {
>       i++;

Hier daten von dr benutzen um DDL zu f�llen

> }
> if(i == 1)
> {
        zusatzaktion f�r i==1
> }


Oder so:

DataTable tbl = new DataTable();
SqlDataAdapter objAdp = new SqlDataAdapter (strSelect,objConn)
objAdp.Fill(tbl);

ddlDatabaseObject.DataSource = tbl;
ddlDatabaseObject.DataValueField = "DatabaseObjectId";
ddlDatabaseObject.DataTextField = "Name"; ddlDatabaseObject.DataBind();

Hier verstehe ich nicht, warum ich einen DataAdapter einsetzen sollte - ich
dachte immer, dass ein Reader dann vorzuziehen w�re, wenn ich nur lesen
m�chte.


Und einen Tipp mit den Connections in Sessions k�nnte der Grund sein, dass
�nderungen an den SP nicht an die Webseite gelangen.

Nochmals Danke

Henri


Henri

_______________________________________________
Asp.net Mailingliste, Postings senden an:
[email protected]
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/asp.net

Antwort per Email an