C# Help ekak :(

chirart1

Well-known member
  • Jul 27, 2009
    3,445
    468
    83
    windows form application ekak

    mata one database eke thiyena values tika penanna puluwan table ekak :( eken select karana mulu row ekema data gannath puluwan wenna one :D

    data grid view ekak thama use kale eke mulu row ekama ganna danne na :(

    udaww :(
     

    lahirukasun

    Well-known member
  • Nov 28, 2006
    1,637
    101
    63
    windows form application ekak

    mata one database eke thiyena values tika penanna puluwan table ekak :( eken select karana mulu row ekema data gannath puluwan wenna one :D

    data grid view ekak thama use kale eke mulu row ekama ganna danne na :(

    udaww :(

    mulu row ekama ganna ona qwe ?? kohetada ganna ona ?? therune na bn. :baffled:
     

    chirart1

    Well-known member
  • Jul 27, 2009
    3,445
    468
    83
    mulu row ekama ganna ona qwe ?? kohetada ganna ona ?? therune na bn. :baffled:


    ona variable ekak awulak na passe mata use karanna puluwan wenna :D

    1 a b c
    2 c d v
    3 r b c
    4 c t v

    meka table eka nam mata one use select karana row ekama ganna ona ekak awulak na list ekak arralist ona ekak mata one wade wenna

    4 c t v :D oka array ekak ona ekak :D and table eke navigation keyboard and enter ebuwama wage select karanna puluwan nam sira :D

    pos system ekak :(
     

    Jack_Sparrow

    Well-known member
  • Jun 16, 2008
    42,522
    1
    16,927
    113
    Black Pearl
    Table eke data tika DataTable ekakata dapan...
    passe datatable eka set karahan gridview dataview ekata

    table eke on click eken row index eka aran, datatable eken ganna puluwan anith details...

    uba ENTER oni nam key down eken enter key eka check karala awshya de karaganna puluwan
     

    Jack_Sparrow

    Well-known member
  • Jun 16, 2008
    42,522
    1
    16,927
    113
    Black Pearl
    Code:
    using System;
    using System.Data;
    using System.Data.SqlClient;
    
    
    public class PullDataTest
    {
        // your data table
        private DataTable dataTable;
    
        public PullDataTest()
        {
        }
    
        // your method to pull data from database to datatable   
        public void PullData()
        {
            string connString = @"your connection string here";
            string query = "select * from table";
    
            SqlConnection conn = new SqlConnection(connString);        
            SqlCommand cmd = new SqlCommand(query, conn);
            conn.Open();
    
            // create data adapter
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            // this will query your database and return the result to your datatable
            da.Fill(dataTable);
            conn.Close();
            da.Dispose();
    
    
        gridView.DataSource = dataTable;
        }
    }
     
    • Like
    Reactions: chirart1

    lahirukasun

    Well-known member
  • Nov 28, 2006
    1,637
    101
    63
    ohoma system 1k hadaddi hondata plan karapan machn.

    1. architecture eka
    2. design patterns
    3. resource utilization
    4. performance wage ewa

    uba ahapu prashneta uththare kiyannam. db connections hari athi kiyala hithanawa :rolleyes:

    mulinma datagrid eke me properties tika hadanna.


    SelectionMode = FullRowSelect
    MultiSelect = False
    ReadOnly = True

    click karana row eke fields wala data mehema ganna.


    List<string> suppliers = new List<string>();

    private void GetSelectedRowData()
    {
    suppliers.add(DatagridViewSupplier.SelectedRows[0].Cells[0].Value.ToString());
    suppliers.add(DatagridViewSupplier.SelectedRows[0].Cells[1].Value.ToString());
    suppliers.add(DatagridViewSupplier.SelectedRows[0].Cells[2].Value.ToString());
    }

    grid eke columns gaanata Cells[2] oka witharak wenas karapan.

    arrow keys walin navigate karaddith select wena row eke data ganna KeyUp event eke daanna me wage.


    private void dgvSuppDetail_KeyUp(object sender, KeyEventArgs e)
    {
    if (DatagridViewSupplier.Rows.Count > 0)
    {
    GetSelectedRowData();
    // do stuff here
    }
    }

    meken navigate karaddima data ganna puluwan.

    ehema nathuwa wena shortcut keys wage ona nam (eg : Alt + 1)


    protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    {
    if (keyData == (Keys.Alt | Keys.D1) && ButtonInsert.Enabled)
    {
    //do stuff here
    }
    return base.ProcessCmdKey(ref msg, keyData);
    }

    gd luck :)
     
    • Like
    Reactions: chirart1

    MihiCherub

    Well-known member
  • Sep 14, 2009
    18,849
    1
    9,594
    113
    Gampaha
    Hour 02 - Creating Database Connection - C# Intermediate

    ගොඩක්ම C# apps හදන්නෙ visual C# inbuilt db එක use කරල. ඒත් Microsoft access use කරන එක තමා ලේසිම. ගොඩක් projects වලට use කරන්න කියන්නෙත් accessනෙ. db connection එක හදාගන්න අමතර codes ටිකක් ඕනෙ වෙනව. ඒත් ඒ codes අපි ලියන්න ඕනෙ නෑ. sql class library එක හරහා import කරල ඒ codes ගන්න පුලුවන්.

    මුලින්ම මේ Library එක DL කරගන්න.


    Download C# SQL Library 5.0.9.0


    හරි දැන් කලින් Visual C# IDE එකේ Create කරගත්ත StudentRegistration Project එකට මේ library එක දාල code එක ලියාගමු.

    අලුත් db class එකක් හදා ගන්න.
    Right click StudentRegistration > Add > New Item


    20_zpsc0f4b236.jpg

    figure 2.5

    Select Class > Class Name එක විදියට db.cs දාන්න. Add.

    21_zps4b47d122.jpg

    figure 2.6

    හරි දැන් library එක දාගමු
    Right Click References > Add Reference


    22_zps8f640556.jpg

    figure 2.7

    Select Browse > Select downloaded library > ok

    23_zps8666ab93.jpg

    figure 2.8

    හරි දැන් Code එක ලියමු. code එක එකපාර copy paste කරල දැන්මොත් සදා අනාතයි. ඒ නිසා තේරුමක් ඇතිව ලියමු. indent කරල Step by step පැහැදිලිව ලියන්න. ඒ වගේම මෙතනදි මම හැම code එකක්ම ලියන්න වෙන්න නැති බවත් පැහැදිලි කරල දෙනව. ඒවගේම සමහර codes generate කරගන්න විදියත් දානව. ඒ නිසා Step by step කරන්න. එකපාර copy paste කලොත් ඒව දැන ගන්න බැරි වෙනව.

    db.cs file එක double click කරල open කරගන්න.

    මුලිනම references වලට දාගත්ත library එක import කරගන්න ඕනෙ. දැනට තියෙන imports වලට යටින්ම import කරගන්න.


    Code:
    using System.Data.OleDb;
    දැන් Static connection එකක් හදාගන්න ඕනෙ. ඒකට db class එක ඇතුලේ උඩින්ම Static connection එක හදාගන්න.

    Code:
    static OleDbConnection con;
    දැන් insert, update, delete queries වලට එක method එකකුත් search query එකට තව method එකකුත් ලියාගමු. අපිට හැම query එකක්ම මෙතන ලියන්න බෑ. මොකද එක එක තැන්වලදි යවන query වර්ග වෙනස් වෙන නිසා. ඒ නිසා ඔක්කොම queries වලට හරියන විදියට පැරා වල String එකක් අල්ලගන්න පුලුවන් විදියට method එක ලියාගන්න.

    for insert, update, delete queries. මේ Method එකෙන් නැවත result එකක් බලාපොරොත්තු වෙන්නෙ නැති නිසාත්, method එක හරහා data db එකට යවන නිසා method එක මේ විදියට හදාගන්න.


    Code:
    public static void setData(String s) {
    }
    for search query. මේ Method එකෙන් නැවත result එකක් බලාපොරොත්තු වෙනව. මොකද අපි Search කරන result එක නැවත අපි search කරපු තැනට අරගන්න ඕනෙ. ඒ නිසා return කරගන්න පුලුවන් විදියෙ method එකක් හදාගන්න.
    Code:
    public static OleDbDataReader getData(String c){
        return null;
    }
    හරි දැන් setData method එක ඇතුලට දන්න කියන codes ටික දාගන්න. exception එකක් throw වෙන නිසා exception handle කරන්න කියල try catch එකක් දාලම දාන්න.

    Code:
    try{
        con = new OleDbConnection();
        con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\temp\\students.mdb";
        con.Open();
        OleDbCommand command = new OleDbCommand(s, con);
        command.ExecuteNonQuery();
    }
    catch (Exception ex){
        System.Console.WriteLine(ex.Message);
    }
    දැන් getData method එක ඇතුලට දන්න කියන codes ටික දාගන්න.

    Code:
    con = new OleDbConnection();
    con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\temp\\students.mdb";
    con.Open();
    Search කරල එන result එක අල්ලගන්න ඕනෙ නිසා resultset එකක් ඕනෙ වෙනව. මේක තමයි අපි search query එක එවපු තැනට ආයිත් return කරන්නෙත්.
    Code:
    OleDbCommand command = new OleDbCommand(c, con);
    OleDbDataReader reader = command.ExecuteReader();
    return reader;
    getData method එක මෙන්න මේවිදියට තියෙන්න ඕනෙ. catch දෙකක් තිබුනට අවුලක් නෑ.

    Code:
    public static OleDbDataReader getData(String c){
        try{
            con = new OleDbConnection();
            con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\temp\\students.mdb";
            con.Open();
            OleDbCommand command = new OleDbCommand(c, con);
            OleDbDataReader reader = command.ExecuteReader();
            return reader;
        }
        catch (Exception ex){
            System.Console.WriteLine(ex.Message);
        }
        return null;
    }
    සම්පූර්න code එක අන්තිමට තියෙන්නෙ ඕනෙ මෙන්න මේවිදියට. කොහෙවත් errors තියෙන්නෙ බෑ.

    24_zpse771183f.jpg

    figure 2.9

    දැන් code එක සම්පුර්නයි. මේ code එකෙත් එකම lines repeat වෙලා තියෙනව පේනවනෙ. ඒවත් නැති කරල තවත් හොද db class එකක් ගහන්න පුලුවන්.
     
    • Like
    Reactions: chirart1