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