Wczytywanie danych z tabeli do kilku stron

0

Witam,

wczytuje dane do labeli w taki sposób:

 bool flaga1 = true;

            SqlCommand kom1 = new SqlCommand();
            kom1.Connection = new SqlConnection(ConfigurationSettings.AppSettings["polaczbaza"]);
            kom1.CommandText = "SELECT * FROM urzadzenia ";

            kom1.Connection.Open();
            SqlDataReader sdr1 = kom1.ExecuteReader();
            while (flaga1)
                try
                {
                    sdr1.Read();

                    l_statnazwafirmy.Text += sdr1.GetInt32(1).ToString() + "\n\n";
                    l_statnazwaurzadzenia.Text += sdr1.GetString(2) + "\n\n";
                    l_statuwagi.Text += sdr1.GetString(4) + "\n\n";
                    l_statstatus.Text += sdr1.GetString(5) + "\n\n";

                }
                catch
                {
                    kom1.Connection.Close();
                    flaga1 = false;


                }
            kom1.Connection.Close();

ładnie mi się wszystko wczytuje, rekordów jest póki co kilka i nie robi mi to problemów ale co zrobić jeśli będzie ich więcej, a chciałbym zachować aktualny sposób wczytywania ? jak zrobić aby było wyświetlane tylko 10 pierwszych ? później mogę zrobić kolejny button aby wyświetlał kolejne 10 rekordów itd...

0

po co jest ten try - catch????

przeca to ma być

while (sdr1.Read())
{
l_statnazwafirmy.Text += sdr1.GetInt32(1).ToString() + "\n\n";
l_statnazwaurzadzenia.Text += sdr1.GetString(2) + "\n\n";
l_statuwagi.Text += sdr1.GetString(4) + "\n\n";
l_statstatus.Text += sdr1.GetString(5) + "\n\n";
}
kom1.Connection.Close();


a co do stronnicowania to podstawowe pytanie - jaka baza?
0

a no widzisz, przekombinowałem ;p poprawie.
baza to sql server 2008, serwer jest zewnetrzny jesli to ma jakies znaczenie.

0

dzięki wielkie.. tylko nie wiem za bardzo jak to "wsadzić" w mój kod ;/

0

musisz odpowiednia query napisac
za pomoca row_number numerujesz wiersze, a nastepnie zapytaniem nadrzednym wybierasz odpowiedni zakres

0

ale numerowac musze w bazie cos ? bo nie rozumiem...

0

o mamo...

Wstaw do tego zapytania swoje nazwy kolumn (zamiast column, column2, column3, columnX) i nazwę tabeli (zamiast table), za @start wstaw od którego wiersza chcesz pobrać dane a za @rowsperpage ile wierszy na stronę ma Ci wyświetlić. Np dla pierwszej strony (przy 10 na stronę) będzie:
@start = 1
@rowsperpage = 10
dla drugiej strony
@start = 11
@rowsperpage = 10
dla trzeciej
@start = 21
@rowsperpage = 10

SELECT * FROM
(
SELECT row_number() OVER (ORDER BY column) AS rownum, column2, column3, .... columnX
FROM   table) AS A
WHERE A.rownum BETWEEN (@start) AND (@start + @rowsperpage)
0

dzięki za łopatologiczne tłumaczenie :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1