从数据库中获取列值并使用文本框对其进行操作
本文关键字:文本 操作 数据库 获取 | 更新日期: 2024-10-30 22:58:50
我正在我的项目中使用两个表单(Form1和Form2)
在Form1上,要求用户输入用户名(文本框用户名)和密码(文本框密码)
当用户登录时,Form2 会弹出他的帐户,他可以在其中查看他的 ID、用户名、姓名、姓氏、生日和金钱列。
登录部分:
MessageBox.Show("Data verified!", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
this.Hide();
Form2 frm2 = new Form2("Welcome: " + textBoxUsername.Text, textBoxUsername.Text);
frm2.ShowDialog();
现在在 Form2 button1 上,用户可以看到他的列:
public class Form2: Form
{
private string currentUserName = string.Empty;
public Form2(string welcome, string UserName)
{
label2.Text = welcome;
currentUserName = UserName;
}
}
private void button1_Click(object sender, EventArgs e)
{
string constring = @"Data Source=V-K';Initial Catalog=ATMKlientet;Integrated Security=True";
SqlCommand cmdDataBase = new SqlCommand(" select * from Clients where Username=@uname", conDataBase);
cmdDataBase.Parameters.AddWithValue("@uname", currentUserName);
try
{
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = cmdDataBase;
dbdataset = new DataTable();
sda.Fill(dbdataset);
BindingSource bSource = new BindingSource();
bSource.DataSource = dbdataset;
dataGridView1.DataSource = bSource;
sda.Update(dbdataset);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
现在,在 Form2 中,我想添加一个文本框,登录用户可以在其中键入数值。如果他的"货币"列为 100,则当他在文本框中键入 50 时,"钱"列在数据库中应保持为 50。否则,如果列值为 ex.100 并且用户撤回 200,则应生成错误。这就像每次用户在文本框中输入值时减去或撤回一样。
使用 textbox_keydownEvent
textBox1.KeyDown += textBox1_KeyDown;
代码内的方法:
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar)) //it will only allow numeric keys
{
e.Handled = true; //it will handle every non-numeric key, and will only allow integers and control keys
}
else
//write your code to what ever you want to do with database or gridview columns
}