C# 在form1到form2的组合框中使用所选值CardNumber
我试图通过输入sql数据库中的pin码来获取已登录的所选卡号,然后我需要匹配所选卡号以从数据库中检索其余额,并将其显示在富文本框中。我已经能够从数据库中获取PIN,并将其与用户卡号进行匹配,以使他们能够访问表单2,但我发现很难从表单1上的组合框中获取所选卡号,并在单击余额按钮并在表单2 richtextbox上显示后使用它检索所选用户的余额。我有以下代码:C# 在form1到form2的组合框中使用所选值CardNumber,c#,sql-server,visual-studio-2010,C#,Sql Server,Visual Studio 2010,我试图通过输入sql数据库中的pin码来获取已登录的所选卡号,然后我需要匹配所选卡号以从数据库中检索其余额,并将其显示在富文本框中。我已经能够从数据库中获取PIN,并将其与用户卡号进行匹配,以使他们能够访问表单2,但我发现很难从表单1上的组合框中获取所选卡号,并在单击余额按钮并在表单2 richtextbox上显示后使用它检索所选用户的余额。我有以下代码: public partial class Form1 : Form { public int logAttempts = 3;
public partial class Form1 : Form
{
public int logAttempts = 3;
public string accountNo;
public Form1()
{
InitializeComponent();
}
private void btnCancel_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void BtnEnter_Click(object sender, EventArgs e)
{
int index = cBCardNumber.SelectedIndex;
DataRow dpin = dataSet1ATMCards.Tables["ATMCards"].Rows[index];
String pin = dpin.ItemArray.GetValue(1).ToString();
if (textBoxPin.Text.Length == 4)
{
if (String.Equals(pin, textBoxPin.Text))
{
Form2 frm2;
frm2 = new Form2();
frm2.ShowDialog();
}
else
{
if (loginAttempts == 1)
{
sqlCommandConfiscated.Parameters["@cardNumber"].Value = cBCardNumber.Text;
sqlCommandConfiscated.Parameters["@confiscated"].Value = true;
try
{
sqlCommandConfiscated.Connection.Open();
sqlCommandConfiscated.ExecuteNonQuery();
MessageBox.Show("You have reached your maximum login attempts.");
textBoxPin.Clear();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
sqlCommandConfiscated.Connection.Close();
}
}
else
{
loginAttempts--;
MessageBox.Show("You have entered the Wrong Pin. You have " + loginAttempts);
}
}
}
else
{
MessageBox.Show("Please enter your 4 digit Pin Number");
}
}
private void Form1_Load(object sender, EventArgs e)
{
sqlDataAdapter1.Fill(dataSet1ATMCards.ATMCards);
}
private void cBCardNumber_SelectedIndexChanged(object sender, EventArgs e)
{
loginAttempts = 3;
}
}
}
一种方法是创建一个以PIN为成员的结构,在form1中设置其值,并在form2中使用它 结构: 表格1: 表格2:
将PIN属性添加到fm2 做
Form2 frm2;
frm2 = new Form2();
frm2.PIN = pin;
frm2.ShowDialog();
然后是一种方式
基本技巧是使fm2独立于fm1。您可以重载ShowDialog并将其传递到其中。
拥有某种公共结构/类,并从两者中使用它
Person p = new Person();
p.PIN = dpin.ItemArray.GetValue(1).ToString();
Form2 frmPopup = new Form2();
frmPopup.p = p;
frmPopup.ShowDialog();
public Person p { get; set; }
Form2 frm2;
frm2 = new Form2();
frm2.PIN = pin;
frm2.ShowDialog();