C# එහෙම කාපු අය පොඩ්ඩක් එන්ඩෝ..

Sep 8, 2012
5,859
981
0
ලංකාවේ
C# එහෙම කාපු අය පොඩ්ඩක් එන්ඩෝ..

C# එහෙම කාපු අය පොඩ්ඩක් එන්ඩෝ..

මචන්ලා මේකයි අවුල,මම ඩේටාබේස් එකක් හැදුවා MS Accsess හොඳද ඉතින් මේක C# වලට කනෙක්ට් කලා පහල කෝඩ් එකේ විදිහට, :oo:

Code:
 private void Form1_Load(object sender, EventArgs e)
        {
            myconnect();
        }

        private void myconnect()
        {
            try
            {

                rs = new DataSet();
                cn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Application.StartupPath + "\\mydata2.accdb;");
                cn.Open();
                ad = new OleDbDataAdapter("SELECT * FROM Tblterms ORDER BY school", cn);
                ad.Fill(rs, "Tblterms");
                com = new OleDbCommand("SELECT school FROM Tblterms ORDER BY school", cn);
                reader = com.ExecuteReader();

                //clear list
                //listBox1.Items.Clear();
                
                while (reader.Read())
                {
                    listBox1.Items.Add(reader[0].ToString());

                }
            }
            catch (Exception ex) { }
           



        }


ඩේටාබේස් එකේ තියෙන්නේ සිංහල, :yes:

මම ඩේටාබේස් එකේ ඩේටා කනෙක්ට් කලේ Listbox එකකට,ඒත් Listbox එකට ඩේටා එන්නේ ඩේටාබේස් එකේ තියෙන පිලිවෙලට නෙමේ,

මේ මගුල හින්දා ඒ row ඒකේ තියෙන ඩේටා හරි පිලිවෙලට textbox වලට ඇඩ් වෙන්නෙත් නෑ....

ඇයි මේ ඩේටාබේස් එකේ තියෙන පිලිවෙලට Listbox එකට ඩේටා ඇඩ් නොවෙන්නේ... :sorry::sorry:

ඩේටාබේස් එකේ English words හරියට ඩේටාබේස් එකේ තියෙන පිලිවෙලට එනවා,ඒත් ඇයි සිංහල ඒ විදිහට Listbox එකට ඇඩ් නොවෙන්නේ
:eek:
 

gayankuwait

Well-known member
  • Oct 13, 2010
    57,928
    4,735
    113
    මේ සයිට් එකත් ඕක වගේමයි. ඒත් ඕකෙන්,
    Key = data[Search][keyword], Value = "aa"
    key = data[Search][vendor_category][], Value = "stores"

    ඔන්න ඔය දෙක එක්ක post කරපු ගමන් result page එක ලස්සනට එනව. ඒත් මේකෙ එහෙම එන්නෙ නෑ. ඒකයි අවුල. මට දැන ගන්න ඕනෙ මේ සයිට් එක වගේම key values වලින් ඒ සයිට් එකෙත් post කරල ගන්න පුලුවන්ද එහෙම ගන්න පුලුවන් නම් key values මොනාද කියලයි.
     

    Thilantdm

    Well-known member
  • Sep 15, 2010
    22,615
    3,514
    113
    අද නම් හදට ආවා
    මේ සයිට් එකත් ඕක වගේමයි. ඒත් ඕකෙන්,
    Key = data[Search][keyword], Value = "aa"
    key = data[Search][vendor_category][], Value = "stores"

    ඔන්න ඔය දෙක එක්ක post කරපු ගමන් result page එක ලස්සනට එනව. ඒත් මේකෙ එහෙම එන්නෙ නෑ. ඒකයි අවුල. මට දැන ගන්න ඕනෙ මේ සයිට් එක වගේම key values වලින් ඒ සයිට් එකෙත් post කරල ගන්න පුලුවන්ද එහෙම ගන්න පුලුවන් නම් key values මොනාද කියලයි.

    :eek::eek:
     

    MihiCherub

    Well-known member
  • Sep 14, 2009
    15,351
    2
    4,099
    113
    Gampaha
    DB එකේ කොහොම තිබුනත් උබ ගන්න query අනුව තමා data ටික එන්නෙ. ඔතනට උබේ තියෙන්නෙ ORDER BY school කියලනෙ ඒක උබට ඕන විදියට වෙනස් කරගන්න. :) ඔතන සිංහල නිසා හරියට data sort වෙනවද කියල බලන්න. එහෙම වෙන්නෙ නැත්නම් ඒක මැනුවල කරන්න වෙනව.
     

    Thilantdm

    Well-known member
  • Sep 15, 2010
    22,615
    3,514
    113
    අද නම් හදට ආවා
    DB එකේ කොහොම තිබුනත් උබ ගන්න query අනුව තමා data ටික එන්නෙ. ඔතනට උබේ තියෙන්නෙ ORDER BY school කියලනෙ ඒක උබට ඕන විදියට වෙනස් කරගන්න. :) ඔතන සිංහල නිසා හරියට data sort වෙනවද කියල බලන්න. එහෙම වෙන්නෙ නැත්නම් ඒක මැනුවල කරන්න වෙනව.

    :yes::yes:
     

    MihiCherub

    Well-known member
  • Sep 14, 2009
    15,351
    2
    4,099
    113
    Gampaha
    ත්‍රෙඩ් එකේ අහපන් මචෝ.. VM දාන්නම ඔනේ නෑ.. දැන් EK අවෙ..
    Access වල collate use කරන්න බෑ වගෙ තමා.. Use of COLLATE statement in SELECT clause

    උබට Access DB එකෙ collate order එක වෙනස් කරන්න වෙනව.. Setting Global Options Programmatically in Access 2000

    ඔතන සිංහල නිසයි ඔය ප්‍රශ්නෙ එන්නෙ, ඒකත් unicode නිසා වෙන්න ඕනෙ, මේකෙන් පුලුවන් වෙයි ගොඩ දාගන්න.

    මුලින්ම අලුත් project එකක් open කරගන්න.
    File > New > Project (Ctrl+Shift+N)

    i_zpsc1c4e456.jpg

    figure 1.0

    Select > Windows Forms Application
    Name - StudentRegistration
    OK

    ii_zps16122b8c.jpg

    figure 1.1

    Final preview

    iii_zps15cc6cf8.jpg

    figure 1.2



    ගොඩක්ම 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: මම බෙනා