Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 26 kết quả

Đề tài: Mô phỏng ATM bằng C#. Xử lý chuyển khoản như thế nào?

  1. #1
    Ngày gia nhập
    05 2011
    Bài viết
    28

    Mặc định Mô phỏng ATM bằng C#. Xử lý chuyển khoản như thế nào?

    Chào cả nhà!
    Mình đang làm form chuyển khoản trong project mô phỏng ATM.
    1.Mình đăng nhập thành công và truyền dữ liệu cho form chuyển khoản rồi.
    Mình đã làm được khi tài khoản A gửi cho tài khoản B 100.000 chẳng hạn thì tài khoản A đã trừ đi 100.00 và update vào bảng lịch sử giao dịch rồi. Nhưng mình loay hoay mãi mà ko thể làm cho tài khoản B được cộng vào 100.000.
    Mình phải phát biểu sql để tìm ra được số tiền hiện tại của tài khoản B trong bảng khách hàng?
    Các bạn giúp mình với! Thanks!!!

    +Bảng khách hàng:
    sotaikhoan,mapin,sotien,sothe,hoten,ngaysinh,gioit inh,diachi.
    nó chỉ tìm được và đọc mỗi tài khoản gửi thôi.

    2.Code:
    A, tạo class da:
    Visual C# Code:
    1. {
    2.     class da
    3.     {
    4.  
    5.         public SqlConnection conn = new SqlConnection();
    6.         public void ketnoi()
    7.         {
    8.  
    9.             conn.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|ATM_DB.mdf;Integrated Security=True";
    10.             conn.Open();
    11.  
    12.         }
    13.         public void dongketnoi()
    14.         {
    15.             conn.Close();
    16.         }
    17.         public void thucthi(string sql)
    18.         {
    19.             da b = new da();
    20.             try
    21.             {
    22.                 b.ketnoi();
    23.                 SqlCommand cmd = new SqlCommand(sql, b.conn);
    24.                 cmd.ExecuteNonQuery();
    25.  
    26.  
    27.             }
    28.             catch (SqlException err)
    29.             {
    30.                 MessageBox.Show(err.ToString());
    31.             }
    32.         }
    33.     }
    34. }
    B, code form chuyển khoản

    Visual C# Code:
    1. {
    2.     public partial class frm_chuyenkhoan : Form
    3.     {
    4.         public frm_chuyenkhoan()
    5.         {
    6.             InitializeComponent();
    7.         }
    8.        public string data;
    9.          da ac = new da();
    10.         private void btn_chuyenkhoan_Click(object sender, EventArgs e)
    11.         {
    12.             string a = data;
    13.             int c, d;
    14.             string sql = "select * from khachhang where sotaikhoan=''" + a + "'";
    15.             ac.ketnoi();
    16.             SqlCommand cmd = new SqlCommand(sql, ac.conn);
    17.             SqlDataReader dr = cmd.ExecuteReader();
    18.             while (dr.Read())
    19.             {
    20.                 string b = dr["sotien"].ToString();
    21.                 string stk = dr["sotaikhoan"].ToString();
    22.  
    23.                         if (Convert.ToInt32(b) - (Convert.ToInt32(txt_tiengui .Text )) >= 50000)
    24.                 {
    25.  
    26.                     c = ((Convert.ToInt32(b)) - (Convert.ToInt32(txt_tiengui.Text )));
    27.                     string sql1 = ("Update khachhang set sotien='" + c + "' where sotaikhoan='" + a + "'");
    28.                     ac.thucthi(sql1);
    29.                     string sql2 = ("Insert into lichsugiaodich(sotaikhoan,tiengiaodich,ngaygio,lydo) values('" + a + "','" + txt_tiengui .Text  + "','" + DateTime.Now.ToString() + "','" + "CHUYEN KHOAN" + "')");
    30.                     ac.thucthi(sql2);
    31.                     //string sq3 = "select sotien from khachhang where sotaikhoan=''" + txt_taikhoannguoinhan.Text + "'";
    32.                     d = (Convert.ToInt32(b) + Convert.ToInt32(txt_tiengui.Text));
    33.                     string sql4 = ("Update khachhang set sotien='" + d + "' where sotaikhoan = '" + txt_taikhoannguoinhan.Text + "'");
    34.                    
    35.                             ac.thucthi(sql4);
    36.                     MessageBox.Show("Chuyển tiền thành công !");
    37.            
    38.  
    39.                  }
    40.                      
    41.                 else
    42.                 {
    43.                     MessageBox.Show("Số tiền trong tài khoản của quý khách không đủ để thực hiện giao dịch");
    44.                 }
    45.             }
    46.             ac.dongketnoi();
    47.  
    48.         }
    49.  
    50.         private void frm_chuyenkhoan_Load(object sender, EventArgs e)
    51.         {
    52.             txtsotaikhoan.Text = data;
    53.         }
    Attached Files Attached Files

  2. #2
    Ngày gia nhập
    04 2011
    Bài viết
    44

    hì, lại gặp bác, thấy bác có vẻ gấp nên em thửl mà luôn
    Visual C# Code:
    1.     public partial class chuyenkhoan : Form
    2.     {
    3.         SqlConnection conn;
    4.         SqlCommand comd;
    5.         public chuyenkhoan()
    6.         {
    7.             InitializeComponent();
    8.         }
    9.  
    10.         private void chuyenkhoan_Load(object sender, EventArgs e)
    11.         {
    12.  
    13.         }
    14.         public void ketnoi()
    15.         {
    16.             conn =new SqlConnection(@"Data Source=WIN7-PC\SQLEXPRESS;Initial Catalog=DB_ATM.MDF;Integrated Security=True");
    17.             conn.Open();
    18.         }
    19.         public void thucthi(string sql)
    20.         {
    21.  
    22.             try
    23.             {
    24.                 ketnoi();
    25.                 comd = new SqlCommand(sql, conn);
    26.                 comd.ExecuteNonQuery();
    27.  
    28.  
    29.             }
    30.             catch (SqlException err)
    31.             {
    32.                // MessageBox.Show(err.ToString());
    33.             }
    34.         }
    35.         public string laysotiennguoinhan(string taikhoannguoinhan)
    36.         {
    37.             ketnoi();
    38.             string sql = "select * from khachhang where sotaikhoan='" + taikhoannguoinhan + "'";
    39.             comd = new SqlCommand(sql, conn);
    40.             SqlDataReader dr = comd.ExecuteReader();
    41.              string sotiencuanguoinhan;
    42.             if (dr.Read())
    43.             {
    44.              sotiencuanguoinhan   = dr["sotien"].ToString();
    45.             }
    46.             else
    47.             {
    48.                 sotiencuanguoinhan = "0";
    49.             }
    50.             return sotiencuanguoinhan;
    51.         }
    52.         private void chuyentien_Click(object sender, EventArgs e)
    53.         {
    54.             ketnoi();
    55.             string a = textBox1.Text;
    56.             string sql = "select * from khachhang where sotaikhoan='" + a + "'";
    57.             comd = new SqlCommand(sql, conn);
    58.             SqlDataReader dr = comd.ExecuteReader();
    59.            
    60.             while (dr.Read())
    61.             {
    62.                 string b = dr["sotien"].ToString();
    63.                 string stk = dr["sotaikhoan"].ToString();
    64.  
    65.                 if (Convert.ToInt32(b) - (Convert.ToInt32(sotienchuyen.Text)) >= 50000)
    66.                 {
    67.  
    68.                    int  c = ((Convert.ToInt32(b)) - (Convert.ToInt32(sotienchuyen.Text)));
    69.                     string sql1 = ("Update khachhang set sotien='" + c+ "' where sotaikhoan='" + a + "'");
    70.                     thucthi(sql1);
    71.                     string sql2 = ("Insert into lichsugiaodich(sotaikhoan,tiengiaodich,ngaygio,lyd o) values('" + a + "','" + sotienchuyen.Text+ "','" + DateTime.Now.ToString() + "','" + "CHUYEN KHOAN" + "')");
    72.                     thucthi(sql2);
    73.  
    74.                     int tongtiencuanguoinhan = Convert.ToInt32(laysotiennguoinhan(taikhoannguoinhan.Text)) + Convert.ToInt32(sotienchuyen.Text);
    75.                    int  d = (Convert.ToInt32(b) + Convert.ToInt32(sotienchuyen.Text));
    76.                     string sql4 = ("Update khachhang set sotien='" + tongtiencuanguoinhan + "' where sotaikhoan = '" + taikhoannguoinhan.Text + "'");
    77.  
    78.                     thucthi(sql4);
    79.                     MessageBox.Show("Chuyển tiền thành công !");
    80.  
    81.  
    82.                 }
    83.  
    84.                 else
    85.                 {
    86.                     MessageBox.Show("Số tiền trong tài khoản của quý khách không đủ để thực hiện giao dịch");
    87.                 }
    88.             }
    89.         }

    em tạo một hàm lấy số tiền của người nhận và truyền tham số là tài khoản của người nhận vào để lấy số tiền

  3. #3
    Ngày gia nhập
    05 2011
    Bài viết
    28

    ???
    Dến khi bạn tính tiền cộng vào bạn vẫn lấy số tiền của người chuyển mà.mình thắc mắc chỗ này (chữ đỏ)

    int tongtiencuanguoinhan = Convert.ToInt32(laysotiennguoinhan(taikhoannguoinh an.Text)) + Convert.ToInt32(sotienchuyen.Text);
    int d = (Convert.ToInt32(b) + Convert.ToInt32(sotienchuyen.Text));
    string sql4 = ("Update khachhang set sotien='" + tongtiencuanguoinhan + "' where sotaikhoan = '" + taikhoannguoinhan.Text + "'");

  4. #4
    Ngày gia nhập
    04 2011
    Bài viết
    44

    quên nói bạn, dòng chữ đỏ bỏ đi, nhìn câu lệnh
    int tongtiencuanguoinhan = Convert.ToInt32(laysotiennguoinhan(taikhoannguoinh an.Text)) + Convert.ToInt32(sotienchuyen.Text);
    string sql4 = ("Update khachhang set sotien='" + tongtiencuanguoinhan + "' where sotaikhoan = '" + taikhoannguoinhan.Text + "'");

  5. #5
    Ngày gia nhập
    05 2011
    Bài viết
    28

    mình sửa theo ý bạn mà vẫn lỗi bạn à.bạn có thể fix trực tiếp từ bài mình gửi ở trên rồi up lại cho mình được ko? Thanks!

  6. #6
    Ngày gia nhập
    04 2011
    Bài viết
    44

    Mặc định Mô phỏng ATM bằng C#. Xử lý chuyển khoản như thế nào?

    đây nè bác

    code form chuyenkhoan
    Code:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.SqlClient;
    
    namespace TIEN
    {
        public partial class frm_chuyenkhoan : Form
        {
            public frm_chuyenkhoan()
            {
                InitializeComponent();
            }
           public string data;
             da ac = new da();
        
             public string laysotiennguoinhan(string taikhoannguoinhan)
             {
                 ac.ketnoi();
                 string sql = "select * from khachhang where sotaikhoan='" + taikhoannguoinhan + "'";
                SqlCommand comd = new SqlCommand(sql, ac.conn);
                 SqlDataReader dr = comd.ExecuteReader();
                 string sotiencuanguoinhan;
                 if (dr.Read())
                 {
                     sotiencuanguoinhan = dr["sotien"].ToString();
                 }
                 else
                 {
                     sotiencuanguoinhan = "0";
                 }
                 return sotiencuanguoinhan;
             }
           
            private void btn_chuyenkhoan_Click(object sender, EventArgs e)
            {
                string a = data;
                int c, d;
                string sql = "select * from khachhang where sotaikhoan='" + a + "'";
                ac.ketnoi();
                SqlCommand cmd = new SqlCommand(sql, ac.conn);
                SqlDataReader dr = cmd.ExecuteReader();
                while (dr.Read())
                {
                    string b = dr["sotien"].ToString();
                    string stk = dr["sotaikhoan"].ToString();
    
                            if (Convert.ToInt32(b) - (Convert.ToInt32(txt_tiengui .Text )) >= 50000)
                    {
    
                        c = ((Convert.ToInt32(b)) - (Convert.ToInt32(txt_tiengui.Text )));
                        string sql1 = ("Update khachhang set sotien='" + c + "' where sotaikhoan='" + a + "'");
                        ac.thucthi(sql1);
                        string sql2 = ("Insert into lichsugiaodich(sotaikhoan,tiengiaodich,ngaygio,lydo) values('" + a + "','" + txt_tiengui .Text  + "','" + DateTime.Now.ToString() + "','" + "CHUYEN KHOAN" + "')");
                        ac.thucthi(sql2);
                        //string sq3 = "select sotien from khachhang where sotaikhoan=''" + txt_taikhoannguoinhan.Text + "'";
                        //d = (Convert.ToInt32(b) + Convert.ToInt32(txt_tiengui.Text));
                        int tongtiencuanguoinhan = Convert.ToInt32(laysotiennguoinhan(txt_taikhoannguoinhan.Text)) + Convert.ToInt32(txt_tiengui.Text);
                        string sql4 = ("Update khachhang set sotien='" + tongtiencuanguoinhan + "' where sotaikhoan = '" + txt_taikhoannguoinhan.Text + "'");
                        
                                ac.thucthi(sql4);
                        MessageBox.Show("Chuyển tiền thành công !");
                
    
                     }
                         
                    else
                    {
                        MessageBox.Show("Số tiền trong tài khoản của quý khách không đủ để thực hiện giao dịch");
                    }
                }
                ac.dongketnoi();
                
                
                
    
                
    
    
    
            }
    
            private void frm_chuyenkhoan_Load(object sender, EventArgs e)
            {
                txtsotaikhoan.Text = data;
            }
        }
    }
    code file da.cs

    Code:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.SqlClient;
    
    namespace TIEN
    {
        class da
        {
    
            public SqlConnection conn;
            public void ketnoi()
            {
    
                conn =new SqlConnection(@"Data Source=WIN7-PC\SQLEXPRESS;Initial Catalog=ATM_DB.MDF;Integrated Security=True"); 
                conn.Open();
    
            }
            public void dongketnoi()
            {
                conn.Close();
            }
            public void thucthi(string sql)
            {
                da b = new da();
                try
                {
                    b.ketnoi();
                    SqlCommand cmd = new SqlCommand(sql, b.conn);
                    cmd.ExecuteNonQuery();
                }
                catch
                { 
                }
    
    
                
    
            }
        }
    }
    có lẽ bác đã sai chuỗi kết nối nên nó mới bị vậy.
    bác chú ý chỗ chữ đỏ nhé, hình như bác bị sai chỗ đó
    em chạy ok đó
    Đã được chỉnh sửa lần cuối bởi tiphudianxin12 : 16-10-2011 lúc 04:38 PM.

  7. #7
    Ngày gia nhập
    05 2011
    Bài viết
    28

    '"+a+"'
    là số tài khoản của người gửi bạn à.nó là txtsotaikhoan từ form đăng nhập mình truyền sang form chuyển khoản,sau đó mình đọc hàng của người chuyền và trừ tiền trong tài khoản của người chuyển.
    thanks bạn rất nhiều!

  8. #8
    Ngày gia nhập
    04 2011
    Bài viết
    44

    Code:
      string sql = "select * from khachhang where sotaikhoan=''" + a + "'";
    ý em là câu lệnh sql của bác thừa một dấu nháy

  9. #9
    Ngày gia nhập
    05 2011
    Bài viết
    28

    Cảm ơn bạn nhiều!
    mình ko phát hiện ra bạn à.thế là phải làm bằng cách củ chuối nhất.nhưng mình vẫn những đóng góp của bạn. nhân đây bạn có thể định hướng cho mình cái thuật toán đếm tiền ko? phần này thì mình bó tay thiệt rùi!

  10. #10
    Ngày gia nhập
    04 2011
    Bài viết
    44

    bạn thử nói rõ hơn đi

Các đề tài tương tự

  1. Điện Tử Thái Thắng chuyên cung cấp ống nhòm đo khoảng cách, máy đo khoảng cách
    Gửi bởi thaithangtelecom trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 1
    Bài viết cuối: 28-07-2013, 09:04 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn