DataSet yordamida malumotlarni o‘qish. DataSet bilan jadval, ustun va satrlarga murojat



Download 53,46 Kb.
bet1/2
Sana30.12.2021
Hajmi53,46 Kb.
#90382
  1   2
Bog'liq
DataSet yordamida malumotlarni o‘qish. DataSet bilan jadval, ustun va satrlarga murojat.


DataSet yordamida malumotlarni o‘qish. DataSet bilan jadval, ustun va satrlarga murojat.

SqlDataAdapter va DataSet bilan ishlash

SqlDataAdapter va DataSet

Ilgari biz ma'lumotlar olish uchun SqlDataReader ob'ektidan foydalanganmiz, bu ma'lumotlar bazasi serveridan javob satrini takrorlash uchun ishlatilishi mumkin. Ammo SqlDataAdapter va DataSet ob'ektlaridan foydalanishni ko'rsatadigan yana bir usul mavjud. DataSet ma'lumotlar ulanishidan qat'i nazar siz ishlashingiz mumkin bo'lgan ma'lumotlar do'konini aks ettiradi va SqlDataAdapter ma'lumotlar bazasini ma'lumotlar bazasi bilan to'ldiradi.

SqlDataAdapter ob'ekti orqali ma'lumotlarni qabul qilish uchun ma'lumotlar bazasiga ulanish o'rnatishingiz va SELECT buyrug'ini bajarishingiz kerak. SqlDataAdapter yaratishning bir necha yo'li mavjud:

1

2

3



4

SqlDataAdapter adapter = new SqlDataAdapter();

SqlDataAdapter adapter = new SqlDataAdapter(command);

SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);

SqlDataAdapter adapter = new SqlDataAdapter(sql, connectionString);



• Siz konstruktorni parametrsiz ishlatishingiz va SELECT buyrug'ini va ulanishni keyinroq o'rnatishingiz mumkin

• SqlCommand ob'ektini konstruktorga topshirishingiz mumkin

• Siz konstruktorda sql ifodasini SELECT va SqlConnection moslamasini o'rnatishingiz mumkin

• Konstruktorda sql-ifoda SELECT va ulanish satrini o'rnatishingiz mumkin

SqlDataAdapter orqali ma'lumotlarni qanday qilib DataSet-ga olishni ko'rib chiqamiz. DataSet bilan ishlash uchun, ayniqsa, Windows Forms DataGridView kabi tashqi ma'lumotlar manbasidan to'ldirilishi mumkin bo'lgan boshqaruv elementlaridan foydalanish juda qulaydir. Shuning uchun biz Windows Forms Application turidagi yangi loyihani yaratamiz.

Loyihadagi yagona shaklga DataGridView elementini qo'shing va quyidagi shakl kodini aniqlang:

using System.Data;

using System.Windows.Forms;

using System.Data.SqlClient;

 namespace AdoNetWinFormsApp

{

    public partial class Form1 : Form



    {

        public Form1()

        {

            InitializeComponent();

             string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=usersdb;Integrated Security=True";

            string sql = "SELECT * FROM Users";

            using (SqlConnection connection = new SqlConnection(connectionString))

            {

                connection.Open();

                // Создаем объект DataAdapter

                SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);

                // Создаем объект Dataset

                DataSet ds = new DataSet();

                // Заполняем Dataset

                adapter.Fill(ds);

                // Отображаем данные

                dataGridView1.DataSource = ds.Tables[0];

            }

        }

    }


}

Shakl konstruktorida ma'lumotlar DataGridView-ga yuklanadi. Ma'lumotlarni yuklash uchun ulanish ob'ekti va SELECT sql ifodasini qabul qiladigan SqlDataAdapter ob'ekti yaratiladi. Keyinchalik DataSet yaratiladi va unga adapter.Fill () usuli yordamida ma'lumotlar yuklanadi. Keyinchalik, DataGridView uchun ma'lumot manbai o'rnatilgan:



1

dataGridView1.DataSource = ds.Tables[0];

DataSet-dagi jadvallardan biri manba sifatida o'rnatiladi. Har bir jadval DataTable ob'ektini aks ettiradi va bunday jadvallarning ko'pini DataSet-da aniqlash mumkin. Ammo bu holda, tortib olayotganda DataSet-da bitta jadval mavjud, biz uni jadvallar to'plamidan indeks bo'yicha olishimiz mumkin.

So'nggi mavzuda biz SqlDataAdapter orqali ma'lumotlarni DataSet-ga yuklashni va keyin ularni DataGridView-da namoyish qilishni ko'rib chiqdik. Ammo, agar ma'lumotlar bazasida qatorlar ko'p bo'lsa, unda qulayroq ishlash uchun ushbu ma'lumotlarni alohida qismlarga yoki sahifalarga ajratish kerak bo'lishi mumkin. DataGridView-dan foydalanib, ob'ektni sahifaviy ko'rinishini yaratish juda oson. Buning uchun biz DataGridView formasida va ikkita tugmachani belgilaymiz - navbati bilan oldinga va orqaga o'tish uchun backButton va nextButton.

Keyin biz quyidagi shakl kodini aniqlaymiz:

using System;

using System.Data;

using System.Data.SqlClient;

using System.Windows.Forms;

 namespace PagingApp

{

    public partial class Form1 : Form



    {

        int pageSize = 5; // размер страницы

        int pageNumber = 0; // текущая страница

        string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=usersdb;Integrated Security=True";

        SqlDataAdapter adapter;

        DataSet ds;

        public Form1()

        {

            InitializeComponent();

     dataGridView1.SelectionMode=DataGridViewSelectionMode.FullRowSelect;

            dataGridView1.AllowUserToAddRows = false;

             using (SqlConnection connection = new SqlConnection(connectionString))

            {

                adapter = new SqlDataAdapter(GetSql(), connection);

 

                ds = new DataSet();



                adapter.Fill(ds, "Users");

                dataGridView1.DataSource = ds.Tables[0];

                dataGridView1.Columns["Id"].ReadOnly = true;

            }

        }

        // обработчик кнопки Вперед

        private void nextButton_Click(object sender, EventArgs e)

        {

            if (ds.Tables["Users"].Rows.Count < pageSize) return;

             pageNumber++;

            using (SqlConnection connection = new SqlConnection(connectionString))

            {

                adapter = new SqlDataAdapter(GetSql(), connection);

                 ds.Tables["Users"].Rows.Clear();

                 adapter.Fill(ds,"Users");

            }

        }

        // обработчик кнопки Назад

        private void backButton_Click(object sender, EventArgs e)

        {

            if (pageNumber==0) return;

            pageNumber--;

             

            using (SqlConnection connection = new SqlConnection(connectionString))

            {

                adapter = new SqlDataAdapter(GetSql(), connection);

                 ds.Tables["Users"].Rows.Clear();

                 adapter.Fill(ds, "Users");

            }

        }

         private string GetSql()

        {

            return "SELECT * FROM Users ORDER BY Id OFFSET ((" + pageNumber + ") * " + pageSize + ") " +

                "ROWS FETCH NEXT " + pageSize + "ROWS ONLY";

        }

    }


}

PageSize o'zgaruvchisi bir varaqdagi satrlar sonini belgilaydi va pageNumber o'zgaruvchisi hozir ko'rilayotgan sahifa sonini saqlaydi.

Ma'lumotlar bazasi so'rovi GetSql () funktsiyasi yordamida yaratiladi.

Oldinga o'tkazish tugmachasida joriy sahifa bittaga ko'paytiriladi va so'rov qilinadi. Orqaga tugma ishlov beruvchisi joriy sahifaning hisoblagichini kamaytiradi.






Download 53,46 Kb.

Do'stlaringiz bilan baham:
  1   2




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©www.hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish