我目前正試圖在C#中設計一個atm機器,我對此很新。 我想我的登錄屏幕返回到我的歡迎屏幕3嘗試登錄失敗後,但我不知道從哪裏開始,以及如何實現我的代碼到我的程序來做到這一點。如何在登錄屏幕上創建登錄限制?
我當前的代碼是我的登錄屏幕如下:
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.OleDb;
using System.Data.Common;
namespace bankkk
{
public partial class FrmLogin : Form
{
public FrmLogin()
{
InitializeComponent();
}
public static OleDbConnection con = new OleDbConnection();
string dbProvider;
string dbSource;
OleDbDataAdapter da;
public static DataSet ds1 = new DataSet();
string sql;
string pin;
int rownum = 0;
bool valid = false;
private void FrmLogin_Load(object sender, EventArgs e)
{
dbProvider = "PROVIDER=Microsoft.ACE.OLEDB.12.0;";
dbSource = "Data Source = 'd:\\bank11.accdb'";
con.ConnectionString = dbProvider + dbSource;
ds1 = new DataSet();
con.Open();
sql = " SELECT tblCustomers.* FROM tblCustomers";
da = new OleDbDataAdapter(sql, con);
rownum = da.Fill(ds1, "tblCustomers");
con.Close();
}
private void btnexit_Click(object sender, EventArgs e)
{
System.Environment.Exit(0);
this.Close();
}
//METHOD VALIDATE
private bool validate()
{
ds1 = new DataSet();
con.Open();
sql = "SELECT tblCustomers.* FROM tblCustomers WHERE ((tblCustomers.AccountNo) = '" + txtAccount.Text + "')";
da = new OleDbDataAdapter(sql, con);
rownum = da.Fill(ds1, "tblCustomers");
con.Close();
if (rownum != 1)
{
MessageBox.Show("Not a valid Account");
return false;
}
else
{
pin = ds1.Tables["tblCustomers"].Rows[0][4].ToString();
if (pin == txtPin.Text)
{
return true;
}
else
{
MessageBox.Show("INVALID PIN");
return false;
}
}
}
private void btnLogin_Click(object sender, EventArgs e)
{
valid = validate();
if (valid == true)
{
if (txtAccount.Text == "11111111" && txtPin.Text == "9999")
{
Frmmanager Manager = new Frmmanager();
this.Close();
Manager.Show();
}
else
{
frmaccount account = new frmaccount();
this.Close();
account.Show();
{
txtAccount.Clear();
txtPin.Clear();
}
}
}
}
private void btnlogin_Click_1(object sender, EventArgs e)
{
valid = validate();
if (valid == true)
{
if (txtAccount.Text == "11111111" && txtPin.Text == "9999")
{
Frmmanager Manager = new Frmmanager();
this.Close();
Manager.Show();
}
else
{
frmaccount account = new frmaccount();
this.Close();
account.Show();
{
txtAccount.Clear();
txtPin.Clear();
}
}
}
}
}
}
O.o在執行SQL語句之後,您不知道從哪裏開始?您是否考慮過從頭開始製作簡單的登錄應用程序,而不使用數據庫? – 2013-03-08 20:02:37
您只需將失敗的登錄數存儲在一個變量中,然後檢查該變量。 – 2013-03-08 20:02:46
使用變量來存儲失敗的登錄嘗試的次數,在每次登錄失敗時增加這個值,檢查按鈕上的變量值是否按順序點擊 – 2013-03-08 20:03:04