C# Datatable Select Records with Generated Code

C# Datatable Select: Visual Studio की एक बहुत ही अच्छी विशेषता ये है कि ये हमें एक ही Database Application को कई तरीकों से Design करने की सुविधा Provide करता है और इस Section में हम एक और तरीके के बारे में जानेंगे।

इस Example में भी सबसे पहले हम एक नया Windows Forms Application Create करेंगे और फिर PROJECT => Add New Item Menu Option को Click करने पर Display होने वाले Dialog Box से निम्न चित्रानुसार एक नए DataSet Class को Current Application में Add करेंगे-

C# Datatable Select & Insert with Generated Code - Hindi

जैसे ही हम नए DataSet Object का नाम Specify करके “Add” Button पर Click करते हैं, हमारे सामने एक DataSet Designer Window Display हो जाता है, जहां हम हमारे Server Explorer Sidebar से निम्न चित्रानुसार चार Tables को Drag-and-Drop तकनीक का प्रयोग करके Place करते हैं:

C# Datatable Select & Insert with Generated Code - Hindi

जैसाकि हम देख सकते हैं कि जब हम Drag-and-Drop तकनीक द्वारा अपने DataSet Designer में Server Explorer से Tables को Drag करके लाते हैं, तो उन Tables के बीच की Relationship भी Automatically Establish हो जाती है।

यानी हमें Relationship को Manually Configure करने की जरूरत नहीं होती बल्कि Underlying Database में Drag-and-Drop होने वाली Tables के बीच जो Relationship होती है, वही Relationship Automatically हमारे DataSet Object में Contained DataTables के बीच भी Configure हो जाती है।

यदि हम हमारे Solution Explorer में Create होने वाले DataSet Object को देखें, तो इस बार भी उतनी ही Files Create हो रही हैं, जितनी पिछले Example में Create हुई थीं। लेकिन इस बार हमने केवल Products नाम की Table को ही Use नहीं किया है बल्कि DataSet Designer में Products के साथ Customers, Orders Order Details नाम की Tables को भी Drag किया है। इसलिए इस बार पहले की तुलना में काफी ज्यादा Classes Create होती हैं, जिसे हम Class View नाम के Sidebar में निम्न चित्रानुसार देख सकते हैं:

C# Datatable Select & Insert with Generated Code - Hindi

जैसाकि हम इस चित्र में दिखाई देने वाली Classes के नाम के अनुसार समझ सकते हैं कि हम DataSet Designer Window में जितनी भी Tables को Drag करते हैं, उन सभी Tables के लिए DataTable, DataRow DataAdapter Class Create होती है हो कि Strongly Typed DataSet Object में Contained होती है।

साथ ही Strongly Typed DataSet Object, Root Namespace में Place होता है, जिसका नाम हमारे उदाहरण में ManualSTDataSet है जो कि हमारे Current Windows Forms Application Project का भी नाम है। जबकि जैसाकि हम पिछले चित्र में देख सकते हैं, हमारे सभी Custom Table Adapters एक Nested Namespace में Place होते हैं।

जब हम उपरोक्त Steps को Follow करते हुए DataSet Designer के माध्‍यम से Manually DataSet Object Create करते हैं, तो जो बहुत सारे Codes व Classes Automatically Generate होते हैं, इनका प्रयोग करके हम बडी ही आसानी से विभिन्न प्रकार के Database Related Operations Perform कर सकते हैं।

Selecting Data with Generated Code

Strongly Typed DataSet Object Create करने पर जो Automatically Generate होने वाली Classes हैं, उन Classes को Use करते हुए हम बडी ही आसानी से किसी भी Strongly Typed DataSet के DataTables के Data को Access करके Frontend में Show कर सकते हैं और इस Concept को बेहतर तरीके से समझने के लिए हम हमारे Form को कुछ निम्नानुसार Design कर सकते हैं:

C# Datatable Select & Insert with Generated Code - Hindi

इस Form पर दिखाई देने वाले “Load Customers” Button पर हम जैसे ही Click करते हैं, Strongly Typed Customers DataTable के Data दिखाई देने वाले Form के DataGridView Control में निम्न चित्रानुसार Fill हो जाते हैं:

C# Datatable Select & Insert with Generated Code - Hindi

इसी तरह से जब हम “Load Products” Button पर Click करते हैं, तो Strongly Typed Products DataTable के Data DataGridView Control में निम्न चित्रानुसार Fill हो जाते हैं:

C# Datatable Select & Insert with Generated Code - Hindi

जबकि “Insert New Product” Button पर Click करने पर हमारे समाने निम्न चित्रानुसार एक नया Form Display होता है, जिसमें दिखाई देने वाले विभिन्न Textboxes में Data Fill करके “Update” Button पर Click करते ही, हमारा Record Strongly Typed Products DataTable से Associated Underlying Database की Products Table में Physically Store हो जाता है:

C# Datatable Select & Insert with Generated Code - Hindi

इसी तरह से जब हम “Delete Product” Button पर Click करते हैं, तो निम्नानुसार Form Display होता है, जिसमें दिखाई देने वाले “Product ID:” Textbox में हम जिस Product का ID Specify करके “Delete” Button पर Click करते हैं, वह Product Strongly Typed Products DataTable के माध्‍यम से Underlying Database की Products Table से Physically Delete हो जाता है:

C# Datatable Select & Insert with Generated Code - Hindi

चूंकि हमारे इस Windows Forms Application में कुल तीन Forms हैं, इसलिए तीनों Forms की Working अलग-अलग होने से तीनों के लिए तीन अलग Programs हैं। इसलिए तीनों ही Forms की Working को हमें अलग-अलग समझना होगा।

जब हम इस Program को Run करते हैं, तो सबसे पहले Program का Main Form Run होता है, जिसका Code View निम्नानुसार होता है:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace ManualSTDataSet
{
    public partial class frmUsingManualSTDataSet : Form
    {
        public frmUsingManualSTDataSet()
        {
            InitializeComponent();
        }

        private void btnExit_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnLoadProducts_Click(object sender, EventArgs e)
        {
            this.lblTableName.Text = "Products";
            dsNW.ProductsDataTable dtProducts = new dsNW.ProductsDataTable();
            dsNWTableAdapters.ProductsTableAdapter daProducts = new dsNWTableAdapters.ProductsTableAdapter();

            daProducts.Fill(dtProducts);
            dgvCommon.DataSource = dtProducts;
        }

        private void btnLoadCustomers_Click(object sender, EventArgs e)
        {
            this.lblTableName.Text = "Customers";
            dsNW.CustomersDataTable dtCustomers = new dsNW.CustomersDataTable();
            dsNWTableAdapters.CustomersTableAdapter daCustomers = new dsNWTableAdapters.CustomersTableAdapter();

            daCustomers.Fill(dtCustomers);
            dgvCommon.DataSource = dtCustomers;
        }

        private void btnInsertNewProduct_Click(object sender, EventArgs e)
        {
            frmAddNewProduct frmANP = new frmAddNewProduct();
            frmANP.Show();
            btnLoadProducts_Click(sender, e);
        }

        private void btnDeleteProduct_Click(object sender, EventArgs e)
        {
            frmDeleteProduct frmDP = new frmDeleteProduct();
            frmDP.Show();
        }
    }
}

जब इस Application को Run किया जाता है, तो Program के Main Form के Memory में Load होते ही निम्नानुसार Constructor Execute होता है:

        public frmUsingManualSTDataSet()
        {
            InitializeComponent();
        }

ये Code हमारे Program के Main Form को Initialize करता है। यानी Form के विभिन्न Controls को उनकी Appropriate Position पर Place करते हुए Form को उसके सभी Design Time Controls को Screen पर Display करता है।

फिर जब हम Form पर दिखाई देने वाले “Load Products” Button पर Click करते हैं, तो इस Button के Click Event के Response में निम्नानुसार Click Event Handler Execute होता है:

        private void btnLoadProducts_Click(object sender, EventArgs e)
        {
            this.lblTableName.Text = "Products";
            dsNW.ProductsDataTable dtProducts = new dsNW.ProductsDataTable();
            dsNWTableAdapters.ProductsTableAdapter daProducts = new dsNWTableAdapters.ProductsTableAdapter();

            daProducts.Fill(dtProducts);
            dgvCommon.DataSource = dtProducts;
        }

ये Code Execute होते ही सबसे पहले Form पर स्थित lblTableName नाम के Label Control की Text Property में Value के रूप में “Products” String को Store कर देता है। फिर dtProducts नाम का dsNW.ProductsDataTable Strongly Type का dtProducts नाम का एक Object Create किया है, जो कि Underlying Database के Products Table के Data को Represent करता है।

फिर हमने dsNWTableAdapters.ProductsTableAdapter Strongly Type का daOrders नाम का एक DataAdapter Object Create किया है, जिसका प्रयोग करके अगले Statement द्वारा dtProducts नाम के DataTable Object को Underlying Database की Products Table के Data से Fill किया है और अन्त में Form पर दिखाई देने वाले DataGridView Control की DataSource Property में इस dtProducts Object को Assign कर दिया है, जिसके परिणामस्वरूप DataTable में Stored Data, DataGridView Control में Load हो जाता है और हमें हमारी Products Table का Data निम्न चित्रानुसार दिखाई देने लगता है:

C# Datatable Select & Insert with Generated Code - Hindi

इसी तरह से जब हम Form पर दिखाई देने वाले “Load Customers” Button पर Click करते हैं, तो इस Button के Click Event के Response में निम्नानुसार Click Event Handler Execute होता है:

        private void btnLoadCustomers_Click(object sender, EventArgs e)
        {
            this.lblTableName.Text = "Customers";
            dsNW.CustomersDataTable dtCustomers = new dsNW.CustomersDataTable();
            dsNWTableAdapters.CustomersTableAdapter daCustomers = new dsNWTableAdapters.CustomersTableAdapter();

            daCustomers.Fill(dtCustomers);
            dgvCommon.DataSource = dtCustomers;
        }

और जिस तरह से “Load Products” Button को Click करने पर Form पर दिखाई देने वाला DataGridView Control, Underlying Database के Products Table के Data से Fill हो जाता है, उसी तरह से “Load Customers” Button को Click करने पर Form पर दिखाई देने वाला DataGridView Control, Underlying Database के Customers Table के Data से Fill हो जाता है।

ADO.NET with C# in Hindi - BccFalna.com: TechTalks in Hindi ये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook ADO.NET with C# in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

ADO.NET with C# in Hindi | Page:501 | Format: PDF

BUY NOW GET DEMO REVIEWS