亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

校園銀行自助系統(tǒng)

系統(tǒng) 1797 0

這幾天由于要交數(shù)據(jù)庫課程設計,就做了一個校園自助銀行系統(tǒng)。由于經(jīng)驗不多,系統(tǒng)做的比較簡單,沒有用三層結構,一些數(shù)據(jù)庫的操作就在用戶層實現(xiàn)了。以下是這個系統(tǒng)的所有代碼:

軟件設計思路
1、 首先建立一個登陸界面,然后做主界面,主界面有以下5個功能:取款,存款,轉賬,轉賬,信息查詢及歷史賬單查詢,修改密碼

2、 在寫數(shù)據(jù)連接代碼時,我寫了一個SqlHelper類,具體代碼如下

      
         1
      
      
        public
      
      
        class
      
      
         SqlHelper


      
      
         2
      
      
        {


      
      
         3
      
      
        //
      
      
        連接數(shù)據(jù)庫的字符串
      
      
         4
      
      
        static
      
      
        string
      
       connStr = 
      
        @"
      
      
        Data Source=zhao\SQLEXPRESS;Initial Catalog=校園自助銀行系統(tǒng);Integrated Security=True
      
      
        "
      
      
        ;


      
      
         5
      
      
        //
      
      
        返回一個表
      
      
         6
      
      
        public
      
      
        static
      
       DataTable ExecuteDataTable(
      
        string
      
       sql, 
      
        params
      
      
         SqlParameter[] param)


      
      
         7
      
      
          {


      
      
         8
      
           DataTable dt = 
      
        new
      
      
         DataTable();


      
      
         9
      
      
        using
      
       (SqlConnection conn = 
      
        new
      
      
         SqlConnection(connStr))


      
      
        10
      
      
            {


      
      
        11
      
      
              conn.Open();


      
      
        12
      
      
        using
      
       (SqlCommand cmd = 
      
        new
      
      
         SqlCommand(sql, conn))


      
      
        13
      
      
        14
      
      
              {


      
      
        15
      
      
        if
      
       (param != 
      
        null
      
      
        )


      
      
        16
      
      
                {


      
      
        17
      
      
                  cmd.Parameters.AddRange(param);


      
      
        18
      
      
                }


      
      
        19
      
               SqlDataAdapter sad = 
      
        new
      
      
         SqlDataAdapter(cmd);


      
      
        20
      
      
                sad.Fill(dt);


      
      
        21
      
      
              }


      
      
        22
      
      
            }


      
      
        23
      
      
        return
      
      
         dt;


      
      
        24
      
      
          }


      
      
        25
      
      
        //
      
      
        執(zhí)行增刪改
      
      
        26
      
      
        public
      
      
        static
      
      
        int
      
       ExecuteNonQuery(
      
        string
      
       sql, 
      
        params
      
      
         SqlParameter[] param)


      
      
        27
      
      
          {


      
      
        28
      
      
        int
      
       result = -
      
        1
      
      
        ;


      
      
        29
      
      
        using
      
       (SqlConnection conn = 
      
        new
      
      
         SqlConnection(connStr))


      
      
        30
      
      
            {


      
      
        31
      
      
              conn.Open();


      
      
        32
      
      
        using
      
       (SqlCommand cmd = 
      
        new
      
      
         SqlCommand(sql, conn))


      
      
        33
      
      
              {


      
      
        34
      
      
        if
      
       (param != 
      
        null
      
      
        )


      
      
        35
      
      
                {


      
      
        36
      
      
                  cmd.Parameters.AddRange(param);


      
      
        37
      
      
                }


      
      
        38
      
               result =
      
         cmd.ExecuteNonQuery();


      
      
        39
      
      
              }


      
      
        40
      
      
            }


      
      
        41
      
      
        return
      
      
         result;


      
      
        42
      
      
          }


      
      
        43
      
      
        44
      
      
        //
      
      
        獲取登錄用戶的信息
      
      
        45
      
      
        public
      
      
        static
      
      
         DataRow GetDataRow()


      
      
        46
      
      
          {


      
      
        47
      
           DataTable dt = SqlHelper.ExecuteDataTable(
      
        "
      
      
        select * from 賬戶信息 where CardNumber=@cardnumber
      
      
        "
      
      , 
      
        new
      
       SqlParameter(
      
        "
      
      
        @cardnumber
      
      
        "
      
      
        ,        UserCardInfo.usercardinfo));


      
      
        48
      
           DataRow dr = dt.Rows[
      
        0
      
      
        ];


      
      
        49
      
      
        return
      
      
         dr;


      
      
        50
      
      
        51
      
      
          }


      
      
        52
      
       }
    

?

在以后的對數(shù)據(jù)庫操作的過程中,都是使用以上類中的方法

3、在做登錄界面前,先在主界面使用以下代碼,在軟件運行時,先彈出登錄界面

      
        1
      
       Login login = 
      
        new
      
       Login();     
      
        //
      
      
        Login是登錄對話框
      
      
        2
      
       login.ShowDialog();
    

?


在進入登錄界面時,我先定義一個隨機數(shù),用于驗證碼功能的實現(xiàn)

      
        1
      
       Random r = 
      
        new
      
      
         Random();


      
      
        2
      
       lblYanZheng.Text = r.Next(
      
        1000
      
      , 
      
        9999
      
      ).ToString();     
      
        //
      
      
        驗證碼的范圍是1000到9999
      
    

?


以下代碼是具體的登錄代碼

      
         1
      
      
        int
      
       count = 
      
        3
      
      
        ;


      
      
         2
      
      
        private
      
      
        void
      
       btnLogin_Click(
      
        object
      
      
         sender, EventArgs e)


      
      
         3
      
      
          {


      
      
         4
      
      
        //
      
      
        記錄銀行卡號
      
      
         5
      
      
        string
      
       cardnumber =
      
         txtCardNumber.Text;


      
      
         6
      
      
        //
      
      
        記錄登錄密碼
      
      
         7
      
      
        string
      
       secret =
      
         txtCardSecret.Text;


      
      
         8
      
      
        //
      
      
        查詢數(shù)據(jù)庫中是否有相對應的用戶
      
      
         9
      
      
        string
      
       sqlstr = 
      
        "
      
      
        select * from 賬戶信息 where CardNumber=@cardnumber and Secret=@secret
      
      
        "
      
      
        ;


      
      
        10
      
           DataTable dt = SqlHelper.ExecuteDataTable(sqlstr, 
      
        new
      
       SqlParameter(
      
        "
      
      
        @cardnumber
      
      
        "
      
      , cardnumber), 
      
        new
      
       SqlParameter(
      
        "
      
      
        @secret
      
      
        "
      
      
        , secret));


      
      
        11
      
      
        //
      
      
        如果查詢結果大于0個,則表示有該用戶
      
      
        12
      
      
        if
      
       (dt.Rows.Count > 
      
        0
      
      
        )


      
      
        13
      
      
            {


      
      
        14
      
      
        //
      
      
        如果驗證碼正確,則允許登錄
      
      
        15
      
      
        if
      
       (txtYanZheng.Text ==
      
         lblYanZheng.Text)


      
      
        16
      
      
              {


      
      
        17
      
      
        //
      
      
        用用戶信息類的usercardinfo變量保存銀行卡號
      
      
        18
      
               UserCardInfo.usercardinfo =
      
         cardnumber;


      
      
        19
      
      
        //
      
      
        選中查詢結果的第一行
      
      
        20
      
               DataRow dr = dt.Rows[
      
        0
      
      
        ];


      
      
        21
      
               DataTable dtUser = SqlHelper.ExecuteDataTable(
      
        "
      
      
        select * from 用戶 where CardNumber=@cardnumber
      
      
        "
      
      , 
      
        new
      
       SqlParameter(
      
        "
      
      
        @cardnumber
      
      
        "
      
      
        , cardnumber));


      
      
        22
      
               DataRow drUser = dtUser.Rows[
      
        0
      
      
        ];


      
      
        23
      
               UserCardInfo.name = drUser[
      
        "
      
      
        Name
      
      
        "
      
      
        ].ToString();


      
      
        24
      
      
        //
      
      
        登錄成功后,關閉登錄對話框
      
      
        25
      
      
        this
      
      
        .Close();


      
      
        26
      
      
              }


      
      
        27
      
      
        else
      
      
        28
      
      
              {


      
      
        29
      
      
        //
      
      
        如果驗證碼,則計數(shù)器遞減
      
      
        30
      
               count--
      
        ;


      
      
        31
      
      
        if
      
       (count <= 
      
        0
      
      
        )


      
      
        32
      
      
                {


      
      
        33
      
                 MessageBox.Show(
      
        "
      
      
        密碼輸錯次數(shù)過多,程序即將退出
      
      
        "
      
      
        );


      
      
        34
      
                 System.Environment.Exit(
      
        0
      
      
        );


      
      
        35
      
      
                }


      
      
        36
      
               ShowMsg(
      
        "
      
      
        驗證碼錯誤,您還有
      
      
        "
      
      +count+
      
        "
      
      
        次機會
      
      
        "
      
      
        );


      
      
        37
      
      
        return
      
      
        ;


      
      
        38
      
      
              }


      
      
        39
      
      
            }


      
      
        40
      
      
        else
      
      
        41
      
      
            {


      
      
        42
      
      
        //
      
      
        如果用戶名或密碼錯誤,則計數(shù)器遞減
      
      
        43
      
      
        if
      
       (dt.Rows.Count <=
      
        0
      
      
        )


      
      
        44
      
      
              {


      
      
        45
      
               count--
      
        ;


      
      
        46
      
      
        if
      
       (count <= 
      
        0
      
      
        )


      
      
        47
      
      
                {


      
      
        48
      
               MessageBox.Show(
      
        "
      
      
        密碼輸錯次數(shù)過多,程序即將退出
      
      
        "
      
      
        );


      
      
        49
      
               System.Environment.Exit(
      
        0
      
      
        );


      
      
        50
      
      
                }


      
      
        51
      
               ShowMsg(
      
        "
      
      
        銀行賬號或密碼錯誤,您還有
      
      
        "
      
       + count + 
      
        "
      
      
        次機會
      
      
        "
      
      
        );


      
      
        52
      
      
        return
      
      
        ;


      
      
        53
      
      
              }


      
      
        54
      
      
        //
      
      
        如果驗證碼錯誤
      
      
        55
      
      
        else
      
      
        if
      
       (txtYanZheng.Text !=
      
         lblYanZheng.Text)


      
      
        56
      
      
              {


      
      
        57
      
               count--
      
        ;


      
      
        58
      
      
        if
      
       (count <= 
      
        0
      
      
        )


      
      
        59
      
      
                {


      
      
        60
      
               MessageBox.Show(
      
        "
      
      
        密碼輸錯次數(shù)過多,程序即將退出
      
      
        "
      
      
        );


      
      
        61
      
               System.Environment.Exit(
      
        0
      
      
        );


      
      
        62
      
      
                }


      
      
        63
      
             ShowMsg(
      
        "
      
      
        驗證碼錯誤,您還有
      
      
        "
      
       + count + 
      
        "
      
      
        次機會
      
      
        "
      
      
        );


      
      
        64
      
      
        return
      
      
        ;


      
      
        65
      
      
              }


      
      
        66
      
      
            }


      
      
        67
      
      
          }


      
      
        68
      
      
        69
      
      
        private
      
      
        void
      
       btnCancle_Click(
      
        object
      
      
         sender, EventArgs e)


      
      
        70
      
      
          {


      
      
        71
      
      
        //
      
      
        徹底退出程序
      
      
        72
      
           System.Environment.Exit(
      
        0
      
      
        );


      
      
        73
      
      
          }


      
      
        74
      
      
        void
      
       ShowMsg(
      
        string
      
      
         msg)


      
      
        75
      
      
          {


      
      
        76
      
      
        //
      
      
        顯示消息
      
      
        77
      
      
            MessageBox.Show(msg);


      
      
        78
      
      
          }


      
      
        79
      
      
        80
      
      
        private
      
      
        void
      
       Login_Load(
      
        object
      
      
         sender, EventArgs e)


      
      
        81
      
      
          {


      
      
        82
      
      
        //
      
      
        設置將關閉按鈕隱藏
      
      
        83
      
      
        this
      
      .ControlBox = 
      
        false
      
      
        ;


      
      
        84
      
         }
    

?

4、進入主界面后

      
         1
      
      
        //
      
      
        打開取款對話框
      
      
         2
      
      
        private
      
      
        void
      
       lblQuKuan_Click(
      
        object
      
      
         sender, EventArgs e)


      
      
         3
      
      
          {


      
      
         4
      
           QuKuan qck = 
      
        new
      
      
         QuKuan();


      
      
         5
      
      
            qck.ShowDialog();


      
      
         6
      
      
          }


      
      
         7
      
      
        //
      
      
        打開存款對話框
      
      
         8
      
      
        private
      
      
        void
      
       lblCunKuan_Click(
      
        object
      
      
         sender, EventArgs e)


      
      
         9
      
      
          {


      
      
        10
      
           CunKuan qck = 
      
        new
      
      
         CunKuan();


      
      
        11
      
      
            qck.ShowDialog();


      
      
        12
      
      
          }


      
      
        13
      
      
        //
      
      
        打開轉賬對話框
      
      
        14
      
      
        private
      
      
        void
      
       lblZhuanZhang_Click(
      
        object
      
      
         sender, EventArgs e)


      
      
        15
      
      
          {


      
      
        16
      
           ZhuanZhang zz = 
      
        new
      
      
         ZhuanZhang();


      
      
        17
      
      
            zz.ShowDialog();


      
      
        18
      
      
          }


      
      
        19
      
      
        //
      
      
        打開查詢個人信息對話框
      
      
        20
      
      
        private
      
      
        void
      
       lblChaXun_Click(
      
        object
      
      
         sender, EventArgs e)


      
      
        21
      
      
          {


      
      
        22
      
           ChaXun cx = 
      
        new
      
      
         ChaXun();


      
      
        23
      
      
            cx.ShowDialog();


      
      
        24
      
      
          }


      
      
        25
      
      
        //
      
      
        打開修改密碼對話框
      
      
        26
      
      
        private
      
      
        void
      
       lblXiuGai_Click(
      
        object
      
      
         sender, EventArgs e)


      
      
        27
      
      
          {


      
      
        28
      
           ChangeSecret cs = 
      
        new
      
      
         ChangeSecret();


      
      
        29
      
      
            cs.ShowDialog();


      
      
        30
      
      
          }


      
      
        31
      
      
        32
      
      
        //
      
      
        歡迎詞做跑龍燈運動
      
      
        33
      
      
        private
      
      
        void
      
       lbltimer_Tick(
      
        object
      
      
         sender, EventArgs e)


      
      
        34
      
      
          {


      
      
        35
      
           lblWelcome.Text = lblWelcome.Text.Substring(
      
        1
      
      ) +
      
         lblWelcome.Text.First();


      
      
        36
      
      
          }


      
      
        37
      
      
        38
      
      
        private
      
      
        void
      
       切換賬戶ToolStripMenuItem_Click(
      
        object
      
      
         sender, EventArgs e)


      
      
        39
      
      
          {


      
      
        40
      
      
        //
      
      
        打開登錄對話框
      
      
        41
      
           Login login = 
      
        new
      
      
         Login();


      
      
        42
      
      
            login.ShowDialog();


      
      
        43
      
      
        44
      
           DataTable dt = SqlHelper.ExecuteDataTable(
      
        "
      
      
        select * from 用戶 where CardNumber=@cardnumber
      
      
        "
      
      , 
      
        new
      
       SqlParameter(
      
        "
      
      
        @cardnumber
      
      
        "
      
      
        ,         UserCardInfo.usercardinfo));


      
      
        45
      
      
        46
      
      
        //
      
      
        更新主界面用戶名稱
      
      
        47
      
           DataRow dr = dt.Rows[
      
        0
      
      
        ];


      
      
        48
      
           lblUserInfo.Text = dr[
      
        "
      
      
        Name
      
      
        "
      
      
        ].ToString();


      
      
        49
      
      
          }


      
      
        50
      
      
        51
      
      
        private
      
      
        void
      
       安全退出ToolStripMenuItem_Click(
      
        object
      
      
         sender, EventArgs e)


      
      
        52
      
      
          {


      
      
        53
      
      
        //
      
      
        退出應用程序
      
      
        54
      
      
            Application.Exit();


      
      
        55
      
      
          }


      
      
        56
      
      
        57
      
      
        private
      
      
        void
      
       Form1_Load(
      
        object
      
      
         sender, EventArgs e)


      
      
        58
      
      
          {


      
      
        59
      
      
        //
      
      
        顯示登錄用戶的名稱
      
      
        60
      
           lblUserInfo.Text = 
      
        ""
      
      
        ;


      
      
        61
      
           DataTable dt = SqlHelper.ExecuteDataTable(
      
        "
      
      
        select * from 用戶 where CardNumber=@cardnumber
      
      
        "
      
      ,
      

                              new SqlParameter( " @cardnumber " ,UserCardInfo.usercardinfo)); 62     DataRow dr = dt.Rows[ 0 ]; 63     lblUserInfo.Text = dr[ " Name " ].ToString(); 64   }

?

5、在進入主界面后,我定義了一個類UserCardInfo,里面定義了幾個字段,用記錄用戶信息

      
         1
      
      
        static
      
      
        class
      
      
         UserCardInfo


      
      
         2
      
      
          {


      
      
         3
      
      
        //
      
      
        保存用戶登錄的卡號
      
      
         4
      
      
        public
      
      
        static
      
      
        string
      
      
         usercardinfo;


      
      
         5
      
      
        //
      
      
        保存交易時間
      
      
         6
      
      
        public
      
      
        static
      
      
        string
      
      
         time;


      
      
         7
      
      
        //
      
      
        保存交易類型
      
      
         8
      
      
        public
      
      
        static
      
      
        string
      
      
         type;


      
      
         9
      
      
        //
      
      
        保存交易金額
      
      
        10
      
      
        public
      
      
        static
      
      
        string
      
      
         money;


      
      
        11
      
      
        //
      
      
        保存賬戶余額
      
      
        12
      
      
        public
      
      
        static
      
      
        string
      
      
         remain;


      
      
        13
      
      
        //
      
      
        保存用戶姓名
      
      
        14
      
      
        public
      
      
        static
      
      
        string
      
      
         name;


      
      
        15
      
         }
    

?


6、在做存款取款轉賬功能前,我先寫了CunQunKuan類,用于定義存取款轉賬方法,具體代碼如下:

      
         1
      
      
        static
      
      
        class
      
      
         CunQuKuan


      
      
         2
      
      
          {


      
      
         3
      
      
        //
      
      
        如果b為true,則為取款,否則為轉賬
      
      
         4
      
      
        public
      
      
        static
      
      
        bool
      
       QuKuan(
      
        decimal
      
       money,
      
        bool
      
      
         b)


      
      
         5
      
      
            {


      
      
         6
      
             DataRow dr =
      
         SqlHelper.GetDataRow();


      
      
         7
      
      
        //
      
      
        先獲得當前用戶的余額
      
      
         8
      
      
        decimal
      
       moneyRemain = 
      
        decimal
      
      .Parse(dr[
      
        "
      
      
        Money
      
      
        "
      
      
        ].ToString());


      
      
         9
      
      
        //
      
      
        如果取款或轉賬的金額大于賬戶余額,則失敗
      
      
        10
      
      
        if
      
       (money >
      
         moneyRemain)


      
      
        11
      
      
              {


      
      
        12
      
               MessageBox.Show(
      
        "
      
      
        余額不足,取款失敗!
      
      
        "
      
      
        );


      
      
        13
      
      
        return
      
      
        false
      
      
        ;


      
      
        14
      
      
              }


      
      
        15
      
      
        else
      
      
        16
      
      
              {


      
      
        17
      
      
        //
      
      
        如果成功,則將余額減去所取的金額
      
      
        18
      
               moneyRemain -=
      
         money;


      
      
        19
      
      
        //
      
      
        更新數(shù)據(jù)庫,將該用戶的賬戶余額改為取款后的余額
      
      
        20
      
               SqlHelper.ExecuteNonQuery(
      
        "
      
      
        update 賬戶信息 set Money=@moneyRemain where CardNumber=@cardnumber 
      
      
        "
      
      , 
      
        new
      
       SqlParameter(
      
        "
      
      
        @moneyRemain
      
      
        "
      
      , moneyRemain), 
      

                                                                  new SqlParameter( " @cardnumber " , dr[ " CardNumber " ].ToString())); 21 if (b == true ) 22         { 23           MessageBox.Show( " 取款成功! " ); 24         } 25 else 26         { 27           MessageBox.Show( " 轉賬成功! " ); 28         } 29 return true ; 30       } 31     } 32 33 // 存款的方法 34 public static void CunKuan( decimal money) 35     { 36       DataRow dr = SqlHelper.GetDataRow(); 37 decimal moneyRemain = decimal .Parse(dr[ " Money " ].ToString()); 38       moneyRemain += money; 39       SqlHelper.ExecuteNonQuery( " update 賬戶信息 set Money=@moneyRemain where CardNumber=@cardnumber " , new SqlParameter( " @moneyRemain " , moneyRemain),
new SqlParameter( " @cardnumber " , dr[ " CardNumber " ].ToString())); 40       MessageBox.Show( " 存款成功! " ); 41     } 42   }

?

7、在做好以上工作以后,我做了取款功能,代碼如下:

      
         1
      
      
        private
      
      
        void
      
       btnOk_Click(
      
        object
      
      
         sender, EventArgs e)


      
      
         2
      
      
            {


      
      
         3
      
      
        decimal
      
       money = 
      
        decimal
      
      
        .Parse(txtMoney.Text);


      
      
         4
      
      
        //
      
      
        執(zhí)行取款操作,并獲得返回值,如果返回true,則打印憑證
      
      
         5
      
      
        bool
      
       b= CunQuKuan.QuKuan(money, 
      
        true
      
      
        );


      
      
         6
      
      
        if
      
      
         (b)


      
      
         7
      
      
              {


      
      
         8
      
               DialogResult result = MessageBox.Show(
      
        "
      
      
        是否打印憑條
      
      
        "
      
      , 
      
        "
      
      
        打印憑條
      
      
        "
      
      
        , MessageBoxButtons.YesNo);


      
      
         9
      
               DataRow dr =
      
         SqlHelper.GetDataRow();


      
      
        10
      
      
        //
      
      
        如果點是,則打印憑證
      
      
        11
      
      
        if
      
       (result ==
      
         DialogResult.Yes)


      
      
        12
      
      
                {


      
      
        13
      
      
        //
      
      
        將標簽的文本改為取款信息
      
      
        14
      
                 lblprint.Text = 
      
        string
      
      .Format(
      
        "
      
      
        卡號:{0}\t\n姓名:{1}\t\n時間:{2}\t\n取款:{3}
      
      
        "
      
      , dr[
      
        "
      
      
        CardNumber
      
      
        "
      
      
        ].ToString(), UserCardInfo.name, DateTime.Now, money.ToString());


      
      
        15
      
      
        //
      
      
        將標簽狀態(tài)改為可視
      
      
        16
      
                 lblprint.Visible = 
      
        true
      
      
        ;


      
      
        17
      
      
                }


      
      
        18
      
      
        //
      
      
        向交易信息中插入取款記錄
      
      
        19
      
               AddJYInfo.MyMethod(dr,money,
      
        "
      
      
        取款
      
      
        "
      
      
        );


      
      
        20
      
      
              }


      
      
        21
      
      
            }


      
      
        22
      
      
        23
      
      
        private
      
      
        void
      
       btnBack_Click(
      
        object
      
      
         sender, EventArgs e)


      
      
        24
      
      
            {


      
      
        25
      
      
        //
      
      
        關閉取款對話框
      
      
        26
      
      
        this
      
      
        .Close();


      
      
        27
      
      
            }


      
      
        28
      
      
        29
      
      
        //
      
      
        當窗口加載的時候,顯示賬戶余額
      
      
        30
      
      
        private
      
      
        void
      
       QuKuan_Load(
      
        object
      
      
         sender, EventArgs e)


      
      
        31
      
      
            {


      
      
        32
      
             DataRow dr =
      
         SqlHelper.GetDataRow();


      
      
        33
      
             lblMoneyRemain.Text += dr[
      
        "
      
      
        Money
      
      
        "
      
      
        ].ToString();


      
      
        34
      
           }
    

?

8、以下是存款功能代碼:

      
         1
      
      
        private
      
      
        void
      
       btnOk_Click(
      
        object
      
      
         sender, EventArgs e)


      
      
         2
      
      
            {


      
      
         3
      
      
        //
      
      
        獲得輸入的存款金額
      
      
         4
      
      
        decimal
      
       money = 
      
        decimal
      
      
        .Parse(txtMoney.Text);


      
      
         5
      
      
        //
      
      
        執(zhí)行存款程序
      
      
         6
      
      
              CunQuKuan.CunKuan(money);


      
      
         7
      
      
        //
      
      
        返回用戶信息所在行
      
      
         8
      
             DataRow dr=
      
        SqlHelper.GetDataRow();


      
      
         9
      
      
        //
      
      
        想交易信息中添加存款記錄
      
      
        10
      
             AddJYInfo.MyMethod(dr, money, 
      
        "
      
      
        存款
      
      
        "
      
      
        );


      
      
        11
      
      
            }


      
      
        12
      
      
        13
      
      
        private
      
      
        void
      
       btnBack_Click(
      
        object
      
      
         sender, EventArgs e)


      
      
        14
      
      
            {


      
      
        15
      
      
        //
      
      
        關閉存款對話框
      
      
        16
      
      
        this
      
      
        .Close();


      
      
        17
      
           }                
    

?

9、以下是轉賬代碼:

      
         1
      
      
        private
      
      
        void
      
       btnOk_Click(
      
        object
      
      
         sender, EventArgs e)


      
      
         2
      
      
            {


      
      
         3
      
      
        decimal
      
       money = 
      
        decimal
      
      
        .Parse(txtMoney.Text);


      
      
         4
      
      
        string
      
       receiver =
      
         txtReceiver.Text;


      
      
         5
      
      
        //
      
      
        獲取轉賬用戶的記錄
      
      
         6
      
             DataRow dr=
      
        SqlHelper.GetDataRow();


      
      
         7
      
      
        //
      
      
        如果轉賬的金額大于賬戶余額,則禁止轉賬
      
      
         8
      
      
        if
      
       (money >
      
        decimal
      
      .Parse(dr[
      
        "
      
      
        Money
      
      
        "
      
      
        ].ToString()))


      
      
         9
      
      
              {


      
      
        10
      
               MessageBox.Show(
      
        "
      
      
        余額不足,轉賬失敗!
      
      
        "
      
      
        );


      
      
        11
      
      
        return
      
      
        ;


      
      
        12
      
      
              }


      
      
        13
      
      
        else
      
      
        14
      
      
              {


      
      
        15
      
               DataTable dt = SqlHelper.ExecuteDataTable(
      
        "
      
      
        select * from 賬戶信息 where CardNumber=@receiver
      
      
        "
      
      , 
      
        new
      
       SqlParameter(
      
        "
      
      
        @receiver
      
      
        "
      
      
        ,     receiver));


      
      
        16
      
      
        //
      
      
        如果數(shù)據(jù)庫中存在接收轉賬的用戶
      
      
        17
      
      
        if
      
       (dt.Rows.Count > 
      
        0
      
      
        )


      
      
        18
      
      
                {


      
      
        19
      
                 DataRow drReceiver = dt.Rows[
      
        0
      
      
        ];


      
      
        20
      
      
        //
      
      
        查詢接收轉賬的用戶的金額
      
      
        21
      
      
        decimal
      
       moneyReceiver = 
      
        decimal
      
      .Parse(drReceiver[
      
        "
      
      
        Money
      
      
        "
      
      
        ].ToString());


      
      
        22
      
      
        //
      
      
        接收者的金額加上轉的金額
      
      
        23
      
                 moneyReceiver +=
      
         money;


      
      
        24
      
      
        //
      
      
        更新接收轉賬的用戶的金額
      
      
        25
      
                 SqlHelper.ExecuteNonQuery(
      
        "
      
      
        update 賬戶信息 set Money=@moneyReceiver where CardNumber=@receiver
      
      
        "
      
      , 
      
        new
      
       SqlParameter(
      
        "
      
      
        @moneyReceiver
      
      
        "
      
      , moneyReceiver),
      
new SqlParameter( " @receiver " , receiver)); 26 // 執(zhí)行取款方法,false表示彈出的消息框為轉賬成功 27           CunQuKuan.QuKuan(money, false ); 28           dr = SqlHelper.GetDataRow(); 29 // 向交易信息中添加轉賬記錄 30           AddJYInfo.MyMethod(dr, money, " 轉賬 " ); 31         } 32 else 33         { 34           MessageBox.Show( " 該用戶不存在,請核對賬戶是否正確 " ); 35 return ; 36         } 37       } 38 39     } 40 41 42 private void btnBack_Click( object sender, EventArgs e) 43     { 44 // 關閉轉賬對話框 45 this .Close(); 46     }

?

10、同時,為了記錄用戶存款取款轉賬記錄,我定義了AddJYInfo類,代碼如下:

      
         1
      
      
        class
      
      
         AddJYInfo


      
      
         2
      
      
          {


      
      
         3
      
      
        //
      
      
        向交易信息表中添加交易信息記錄
      
      
         4
      
      
        public
      
      
        static
      
      
        void
      
       MyMethod(DataRow dr, Decimal money, 
      
        string
      
      
         type)


      
      
         5
      
      
            {


      
      
         6
      
      
        //
      
      
        銀行卡號
      
      
         7
      
             UserCardInfo.usercardinfo = dr[
      
        "
      
      
        CardNumber
      
      
        "
      
      
        ].ToString();


      
      
         8
      
      
        //
      
      
        交易金額
      
      
         9
      
             UserCardInfo.money =
      
         money.ToString();


      
      
        10
      
      
        //
      
      
        交易時間
      
      
        11
      
             UserCardInfo.time =
      
         DateTime.Now.ToString();


      
      
        12
      
      
        //
      
      
        交易類型
      
      
        13
      
             UserCardInfo.type =
      
         type;


      
      
        14
      
      
        //
      
      
        交易后賬戶余額
      
      
        15
      
             UserCardInfo.remain = dr[
      
        "
      
      
        Money
      
      
        "
      
      
        ].ToString();


      
      
        16
      
      
        //
      
      
        向數(shù)據(jù)庫中插入交易記錄
      
      
        17
      
      
        string
      
       sql = 
      
        "
      
      
        insert into 交易記錄 (CardNumber,Time,Money,Type,Remain) Values(@usercardinfo, @time,@money,@type,@remain)
      
      
        "
      
      
        ;


      
      
        18       
      
      SqlHelper.ExecuteNonQuery(sql, 
      
        new
      
       SqlParameter(
      
        "
      
      
        @usercardinfo
      
      
        "
      
      , UserCardInfo.usercardinfo), 
      
                          new SqlParameter( " @time " , UserCardInfo.time),
new SqlParameter( " @money " , UserCardInfo.money),
                          new SqlParameter( " @type " , UserCardInfo.type),
new SqlParameter( " @remain " , UserCardInfo.remain)); 19     } 20   }

?

11、接下來是信息查詢及歷史交易記錄查詢功能,在做歷史交易記錄查詢功能時,我添加了類AddData,定義了一個根據(jù)所選的年份和月份動態(tài)添加每個月的天數(shù),代碼如下:

      
         1
      
      
        class
      
      
         AddData


      
      
         2
      
      
          {


      
      
         3
      
      
        public
      
      
        static
      
       List<
      
        int
      
      > AddDay(
      
        int
      
       year, 
      
        int
      
      
         month)


      
      
         4
      
      
            {


      
      
         5
      
             List<
      
        int
      
      > list = 
      
        new
      
       List<
      
        int
      
      >
      
        ();      


      
      
         6
      
      
        if
      
       (month == 
      
        1
      
       || month == 
      
        3
      
       || month == 
      
        5
      
       || month == 
      
        7
      
       || month == 
      
        9
      
       || month == 
      
        11
      
      
        )


      
      
         7
      
      
              {


      
      
         8
      
      
                list.Clear();


      
      
         9
      
      
        for
      
       (
      
        int
      
       i = 
      
        1
      
      ; i <= 
      
        31
      
      ; i++
      
        )


      
      
        10
      
      
                {


      
      
        11
      
      
                  list.Add(i);


      
      
        12
      
      
                }


      
      
        13
      
      
              }


      
      
        14
      
      
        else
      
      
        if
      
       (month == 
      
        4
      
       || month == 
      
        6
      
       || month == 
      
        8
      
       || month == 
      
        10
      
       || month == 
      
        12
      
      
        )


      
      
        15
      
      
              {


      
      
        16
      
      
                list.Clear();


      
      
        17
      
      
        for
      
       (
      
        int
      
       i = 
      
        1
      
      ; i <= 
      
        30
      
      ; i++
      
        )


      
      
        18
      
      
                {


      
      
        19
      
      
                  list.Add(i);


      
      
        20
      
      
                }


      
      
        21
      
      
              }


      
      
        22
      
      
        else
      
      
        23
      
      
              {


      
      
        24
      
      
        if
      
       (year % 
      
        4
      
       == 
      
        0
      
       && year % 
      
        100
      
       != 
      
        0
      
       || year % 
      
        400
      
       == 
      
        0
      
      
        )


      
      
        25
      
      
                {


      
      
        26
      
      
                  list.Clear();


      
      
        27
      
      
        for
      
       (
      
        int
      
       i = 
      
        1
      
      ; i <= 
      
        29
      
      ; i++
      
        )


      
      
        28
      
      
                  {


      
      
        29
      
      
                    list.Add(i);


      
      
        30
      
      
                  }


      
      
        31
      
      
                }


      
      
        32
      
      
        else
      
      
        33
      
      
                {


      
      
        34
      
      
                  list.Clear();


      
      
        35
      
      
        for
      
       (
      
        int
      
       i = 
      
        1
      
      ; i <= 
      
        28
      
      ; i++
      
        )


      
      
        36
      
      
                  {


      
      
        37
      
      
                    list.Add(i);


      
      
        38
      
      
                  }


      
      
        39
      
      
                }


      
      
        40
      
      
              }


      
      
        41
      
      
        return
      
      
         list;


      
      
        42
      
      
            }


      
      
        43
      
         }
    

?

12、以下是信息查詢及歷史交易記錄查詢代碼:

      
         1
      
      
        private
      
      
        void
      
       ChaXun_Load(
      
        object
      
      
         sender, EventArgs e)


      
      
         2
      
      
            {


      
      
         3
      
      
        //
      
      
        獲取該用戶信息
      
      
         4
      
             DataRow dr =
      
         SqlHelper.GetDataRow();


      
      
         5
      
      
        //
      
      
        獲得銀行卡號
      
      
         6
      
      
        string
      
       cardnumber = dr[
      
        "
      
      
        CardNumber
      
      
        "
      
      
        ].ToString();


      
      
         7
      
      
        //
      
      
        將表格控件的數(shù)據(jù)源綁定
      
      
         8
      
             dataGridView.DataSource = SqlHelper.ExecuteDataTable(
      
        "
      
      
        select * from 用戶 where CardNumber=@cardnumber
      
      
        "
      
      , 
      
        new
      
       SqlParameter(
      
        "
      
      
        @cardnumber
      
      
        "
      
      
        , cardnumber));


      
      
         9
      
      
        //
      
      
        選擇起始年份的默認項為下標為0的項
      
      
        10
      
             cbStartYear.SelectedIndex = 
      
        0
      
      
        ;


      
      
        11
      
      
        //
      
      
        選擇截止年份的默認項為下標為0的項
      
      
        12
      
             cbEndYear.SelectedIndex = 
      
        0
      
      
        ;


      
      
        13
      
      
        //
      
      
        選擇起始月份的默認項為下標為5的項
      
      
        14
      
             cbStartMonth.SelectedIndex = 
      
        5
      
      
        ;


      
      
        15
      
      
        //
      
      
        選擇截止月份的默認項為下標為5的項
      
      
        16
      
             cbEndMonth.SelectedIndex = 
      
        5
      
      
        ;


      
      
        17
      
      
            }


      
      
        18
      
      
        19
      
      
        private
      
      
        void
      
       btnOk_Click(
      
        object
      
      
         sender, EventArgs e)


      
      
        20
      
      
            {


      
      
        21
      
      
        //
      
      
        關閉查詢對話框
      
      
        22
      
      
        this
      
      
        .Close();


      
      
        23
      
      
            }


      
      
        24
      
      
        25
      
      
        private
      
      
        void
      
       btnQuery_Click(
      
        object
      
      
         sender, EventArgs e)


      
      
        26
      
      
            {


      
      
        27
      
      
        28
      
      
        int
      
       startyear = 
      
        int
      
      
        .Parse(cbStartYear.SelectedItem.ToString());


      
      
        29
      
      
        int
      
       startmonth = 
      
        int
      
      
        .Parse(cbStartMonth.SelectedItem.ToString());


      
      
        30
      
      
        31
      
      
        int
      
       endyear = 
      
        int
      
      
        .Parse(cbEndYear.SelectedItem.ToString());


      
      
        32
      
      
        int
      
       endmonth = 
      
        int
      
      
        .Parse(cbEndMonth.SelectedItem.ToString());


      
      
        33
      
      
        34
      
      
        try
      
      
        35
      
      
              {


      
      
        36
      
      
        int
      
       startday = 
      
        int
      
      
        .Parse(cbStartDay.SelectedItem.ToString());


      
      
        37
      
      
        int
      
       endday = 
      
        int
      
      
        .Parse(cbEndDay.SelectedItem.ToString());  


      
      
        38
      
      
        39
      
      
        if
      
       (startyear > endyear || (startyear <= endyear && startmonth > endmonth) || (startyear <= endyear && startmonth <= endmonth &&   startday >
      
         endday))


      
      
        40
      
      
                {


      
      
        41
      
                 MessageBox.Show(
      
        "
      
      
        請輸入正確的查詢日期范圍
      
      
        "
      
      
        );


      
      
        42
      
      
        return
      
      
        ;


      
      
        43
      
      
                }


      
      
        44
      
      
        else
      
      
        45
      
      
                {


      
      
        46
      
                 DataTable dt = SqlHelper.ExecuteDataTable(
      
        "
      
      
        select * from 交易記錄 where Year(Time)>=@startyear and Year(Time)<=@endyear and Month(Time)>=@startmonth and Month(Time)<=@endmonth and Day(Time)>=@startday and Day(Time)<=@endday and CardNumber=@cardnumber
      
      
        "
      
      , 
      
        new
      
       SqlParameter(
      
        "
      
      
        @startyear
      
      
        "
      
      , startyear),
      
new SqlParameter( " @endyear " , endyear),
                                                        new SqlParameter( " @startmonth " , startmonth),
new SqlParameter( " @endmonth " , endmonth),
                                                        new SqlParameter( " @startday " , startday),
new SqlParameter( " @endday " , endday),
                                                        new SqlParameter( " @cardnumber " , UserCardInfo.usercardinfo)); 47 if (dt.Rows.Count > 0 ) 48           { 49             tableHistory.DataSource = dt; 50           } 51 else 52           { 53             tableHistory.DataSource = null ; 54             MessageBox.Show( " sorry,未查詢到相關數(shù)據(jù) " ); 55           } 56         } 57       } 58 catch (Exception) 59       { 60         MessageBox.Show( " 請選擇查詢日期 " ); 61       } 62 63     } 64 // 當起始月份的選擇項索引發(fā)生變化時發(fā)生的事件 65 private void cbStartMonth_SelectedIndexChanged( object sender, EventArgs e) 66     { 67 int month = int .Parse(cbStartMonth.SelectedItem.ToString()); 68 int year = int .Parse(cbStartYear.SelectedItem.ToString()); 69 // 先清空之前已添加的天數(shù) 70       cbStartDay.Items.Clear(); 71 foreach ( int item in AddData.AddDay(year, month)) 72       { 73 // 向起始天下拉框中添加天數(shù) 74         cbStartDay.Items.Add(item); 75       } 76 77     } 78 // 當截止月份的選擇項索引發(fā)生變化時發(fā)生的事件 79 private void cbEndMonth_SelectedIndexChanged( object sender, EventArgs e) 80     { 81 int month = int .Parse(cbEndMonth.SelectedItem.ToString()); 82 int year = int .Parse(cbEndYear.SelectedItem.ToString()); 83       cbEndDay.Items.Clear();   84 foreach ( int item in AddData.AddDay(year, month)) 85       { 86         cbEndDay.Items.Add(item); 87       } 88 89     }

?

13、最后是修改密碼功能,具體代碼如下:

      
         1
      
      
        //
      
      
        設置允許改密碼錯誤的次數(shù)
      
      
         2
      
      
        int
      
       count = 
      
        3
      
      
        ;


      
      
         3
      
      
        private
      
      
        void
      
       btnOk_Click(
      
        object
      
      
         sender, EventArgs e)


      
      
         4
      
      
            {


      
      
         5
      
      
        //
      
      
        或舊密碼
      
      
         6
      
      
        string
      
       oldpwd =
      
         txtOldPwd.Text;


      
      
         7
      
      
        //
      
      
        獲得輸入的新密碼
      
      
         8
      
      
        string
      
       newpwd =
      
         txtNewPwd.Text;


      
      
         9
      
      
        //
      
      
        獲得確認的新密碼
      
      
        10
      
      
        string
      
       newpwd2 =
      
         txtNewPwd2.Text;


      
      
        11
      
      
        //
      
      
        查詢該用戶信息
      
      
        12
      
             DataRow dr =
      
         SqlHelper.GetDataRow();


      
      
        13
      
      
        //
      
      
        如果輸入的舊密碼正確和兩次輸入的新密碼都一致,則修改密碼成功
      
      
        14
      
      
        if
      
       (oldpwd == dr[
      
        "
      
      
        secret
      
      
        "
      
      ].ToString() && newpwd ==
      
         newpwd2)


      
      
        15
      
      
              {


      
      
        16
      
               SqlHelper.ExecuteNonQuery(
      
        "
      
      
        update 賬戶信息 set Secret=@secret where CardNumber=@cardnumber
      
      
        "
      
      , 
      
        new
      
       SqlParameter(
      
        "
      
      
        @secret
      
      
        "
      
      , newpwd),
      
new SqlParameter( " @cardnumber " , dr[ " CardNumber " ].ToString())); 17         MessageBox.Show( " 恭喜您,密碼修改成功! " ); 18       } 19 // 如果舊密碼錯誤,則要求重新輸入舊密碼,如果輸錯三次,則退出修改密碼對話框 20 else if (oldpwd != dr[ " secret " ].ToString()) 21       { 22         MessageBox.Show( " 原始密碼不正確,您還剩 " + --count + " 次機會 " ); 23 if (count <= 0 ) 24         { 25 this .Close(); 26         } 27 return ; 28       } 29 // 如果兩次輸入的新密碼不一致 30 else if (newpwd != newpwd2) 31       { 32         MessageBox.Show( " 親,您的倆次密碼不一致哦!再檢查一下吧 " ); 33 return ; 34       } 35 36     } 37 38 private void btnCancle_Click( object sender, EventArgs e) 39     { 40 // 關閉修改密碼對話框 41 this .Close(); 42     }

?

?

最后總結一下做這個系統(tǒng)之后的感受吧,以前學習的時候,不知道為什么別人要定義這個類,為什么這個方法的返回值要是這個類型,其實大可不必糾結這些問題,在自己做的時候,就會發(fā)現(xiàn)根據(jù)項目的需要,自然而然的需要做這些事情。通過這次實踐,更加加深了我對ADO.Net的理解,在后面的學習過程中,多實踐多練習才是快速掌握知識的正確途徑,沒有一定代碼的積累,是很難成為真正的高手。

校園銀行自助系統(tǒng)


更多文章、技術交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 青青青青青青久久久免费观看 | 一级免费看片 | 亚洲高清中文字幕 | 亚州国产 | 欧美精品成人一区二区在线观看 | xxx大片免费视频 | 国产福利在线观看视频 | 性生活视频网 | 亚洲欧洲中文日产 | 国内精品久久久久不卡 | 香蕉九九 | 午夜免费福利不卡网址92 | 久久这里只有精品66re99 | 亚洲国产成人久久精品动漫 | 最新亚洲精品国自产在线 | 天天干天天操天天拍 | 久热re国产手机在线观看 | 国产精品一区视频 | 亚洲国产精品热久久2022 | 亚洲一区在线日韩在线深爱 | 奇米影视色 | 欧美激情社区 | 国内精品不卡一区二区三区 | 综合色在线观看 | 天天拍天天操 | 宅男影院在线观看 | 日日日干干干 | 黑人巨大vs日本妞 | 天天色天天射综合网 | 国产精品一区在线观看 | 秋霞在线观看成人高清视频51 | 老妇女人一级毛片 | 成熟的女性强烈交性视频 | 一级久久 | 精品成人一区二区三区免费视频 | 九九久久久久午夜精选 | 久久久久在线 | 老子影院午夜伦手机不四虎 | 精品亚洲综合在线第一区 | 亚洲精品一二三区-久久 | 日本高清视频一区二区 |