Hej! Du kommer antingen behöva konvertera till DataSet eller köra 2 SQL-satser. En som hämtar antalet rader och en som hämtar raderna. Om du kör dessa tillsammans i t ex en stored procedure så kan du returnera båda resultaten till en datareader. Sedan läser du först resultatet från radräkningen med hjälp av Read() och sedan byter du resultset med NextResultset() (tror det heter så)... Tack för svaret. Det var som jag misstänkte. Jag tror jag kör på SP varianten. :)DataReader ASP.Net
Jag är relativt ny gällande ASP.Net och har stött på ett problem.
Jag hämtar data från en databas, tar emot det i en dataReader. Sedan skulle jag vilja veta hur många poster (rader) readern består av. Jag har surfat runt på nätet hela gårdagen utan att hitta en lösning.
Ett sätt är givetvis att loopa igenom readern med metoden Read(), men då får jag känslan av att den sedan är framstegad så att den pekar efter sista posten, vilket blir problem när jag sedan vill skriva ut datat... Kan man få den att peka på första posten igen?
Finns det något bra sätt, eller ska jag använda tex dataset istället för reader?
Tacksam för hjälp! :)Sv: DataReader ASP.Net
Bara en tanke...
<code>
// 2 SQL-satser. En första som returnera antalet rader och en andra som returnerar raderna...
// typ:
// select count(*) from myTable
// select * from myTable
int rowCount;
SqlDataReader dr = command.ExecuteReader();
if (dr.Read())
{
rowCount = dr.GetInt(0);
}
dr.NextResultset();
while (dr.Read())
{
// Hantera raderna...
}
dr.Close();
</code>
alternativt kan du ha en out-parameter som returnerar antalet rader om du använder en SP... Vore kanske den snyggaste lösningen...Sv:DataReader ASP.Net