Friday, 20 July 2012

26. Trader can read/save data to Acess database

I have Access database from previous version so C# will use these Access database data using OleDbConnection.


There are elements needed and code under button "BuySell" (partially hidden behind two lists). Two lists are used to present information in a better way.

     private void BuySell_Click(object sender, EventArgs e)
        {
            string con = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=P:\\Private\\Analizator\\Analizator.mdb"; // define connection
            using (OleDbConnection c = new OleDbConnection(con))     // create connection
            {
                c.Open();           // Open connection
                string indNow = activeIndice.Text.Replace("RA:CZ", "-R-A");
                string selekt = "select * from zatrgovinu where dionica=" + "'" + indNow + "'" + " and Status='Otvoren' " + " order by redbrzt";    // construct sql string
                string listRow = "";
                string auX = "";
                string buYselL = "";
                double suMb = 0;
                double suMs = 0;
                double dou1;
                double dou2;
                string str1;
                Int16 int1;
                int sumShS = 0;
                int sumShB = 0;
                double statusB = 0;
                double statusS = 0;
                double proD;
                double PricE = Convert.ToDouble(pricE.Text);
                double deltA = 0;
                using (OleDbDataAdapter a = new OleDbDataAdapter(selekt, c)) // Create new DataAdapter
                {
                    DataTable dt = new DataTable();   // Use DataAdapter to fill DataTable
                    a.Fill(dt);
                    listBuy.Items.Clear();
                    listSell.Items.Clear();
                    sumShB = 0;
                    sumShS = 0;
                    int j = -1;
                    int m = -1;
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        auX = Convert.ToString(dt.Rows[i][3]);
                        if (auX == "Prodaja")
                        {
                            m++;
                            buYselL = "Buy < @ ";
                             dou1 = Convert.ToDouble(dt.Rows[i][9]);
                             dou2 = Math.Round(dou1 * 0.99, 2);
                             str1 = Convert.ToString(dt.Rows[i][4]);
                             int1 = Convert.ToInt16(str1);
                            listRow = buYselL + dou1.ToString("##0.00") + " Kn x " + str1.PadLeft(3)
                                + " shares -1% " + dou2.ToString("##0.00");
                             proD = dou1 * int1;
                            suMb = suMb + proD;
                            sumShB = sumShB+ int1;
                            listRow = listRow + " = " + proD.ToString("##,##0.00") + " Kn";
                            deltA = Math.Round(dou1 - PricE, 2);
                             listRow = listRow + " " + deltA.ToString("##0.00");
                             deltA = Math.Round(deltA * int1, 2);
                             listRow = listRow + " " + deltA.ToString("#,##0.00");
                             if (deltA > 0) { listRow = listRow + "++"; } else { listRow = listRow + "--"; }
                             listBuy.Items.Add(listRow);
                             if (deltA > 0) { listBuy.SetSelected(m, true); }
                            toBuyTotal.Text = suMb.ToString("##,##0.00");
                            buyShares.Text = Convert.ToString(sumShB);
                            statusB = PricE * sumShB;
                            buyStatus.Text = Convert.ToString(Math.Round(suMb - statusB, 2));
                            toBuyAve.Text=Convert.ToString(Math.Round((suMb/sumShB)*1,2));     // minimal selling price
                        }
                        else
                        {
                            j++;
                            buYselL = "Sell > @ ";
                            dou1 = Convert.ToDouble(dt.Rows[i][9]);
                            dou2 = Math.Round(dou1 * 1.01, 2);
                            str1 = Convert.ToString(dt.Rows[i][4]);
                            int1 = Convert.ToInt16(str1);
                            listRow = buYselL + dou1.ToString("##0.00") + " Kn x " + str1.PadLeft(3)
                                + " shares +1% " + dou2.ToString("##0.00");
                            proD = dou1 * int1;
                            suMs = suMs + proD;
                            sumShS = sumShS + int1;
                            listRow = listRow + " = " + proD.ToString("##,##0.00") + " Kn";
                            deltA =Math.Round( PricE - dou1,2);
                            listRow=listRow+" " + deltA.ToString("##0.00");
                            deltA = Math.Round(deltA*int1, 2);
                            listRow=listRow + " " + deltA.ToString("#,##0.00");
                            if (deltA > 0) { listRow = listRow + "++"; } else { listRow = listRow + "--"; }
                            listSell.Items.Add(listRow );
                             if (deltA > 0) { listSell.SetSelected(j,true);}
                            toSellTotal.Text = suMs.ToString("##,##0.00");
                            sellShares.Text = Convert.ToString(sumShS);
                            statusS = PricE * sumShS;
                            sellStatus.Text = Convert.ToString(Math.Round( statusS-suMs, 2));
                            toSellAve.Text = Convert.ToString(Math.Round((suMs / sumShS) * 1, 2));     // minimal selling price
                        }
                    }                 
                    dataSelect.DataSource = dt; //  // Render data onto the screen
                    dataSelect.AutoResizeColumns();
                }
            }
        }


No comments:

Post a Comment