c# - 将新值从 form1 传递到 form2,该值位于数据库的同一记录中
问题描述
我是初学者。我刚刚为图书馆应用程序创建了一个登录表单。
我的登录表单包含 id、pass 和登录按钮。这是我的登录按钮脚本。
string userid1 = userid.Text;
string password1 = userpwd.Text;
SqlCommand cmd = new SqlCommand("select id_user,pwd_user from tb_user where id_user='" + userid.Text + "'and pwd_user='" + userpwd.Text + "'", con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
if (dt.Rows.Count > 0)
{
MessageBox.Show("Login success!");
var myForm = new Form2();
this.Hide();
myForm.Show();
}
我的登录表中的数据库属性有:id、pass、name。有人可以告诉我或指导我在我登录表格 2 后如何将 id 值传递给 name 值吗?
解决方案
在这种情况下,我通常为 From2 和一组数据/用户方法做 2 个构造函数:
public Form2()
{
InitializeComponent();
}
public Form2(string id, string name /* other arguments */) : this()
{
SetUser(id, name);
}
public void SetUser(string id, string name /* other arguments */)
{
this.Text = $"user logged: {name} ({id})";
//do stuff
}
并像这样调用它(在你的代码中):
if (dt.Rows.Count > 0)
{
MessageBox.Show("Login success!");
var myForm = new Form2(id, name /* other arguments */);
//or:
//myForm = new Form2();
//myForm.SetUser(id, name);
this.Hide();
myForm.Show();
}
顺便说一句:在用户表中存储纯文本密码不是一个好主意。btw2:对于查询,使用参数也是一个好习惯,而不是从粘在一起的字符串中构建查询,请参见此处:https://msdn.microsoft.com/pl-pl/library/system.data.sqlclient.sqlcommand。参数%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396
推荐阅读
- gatling - 在加特林中,出现“线程“主”java.lang.ExceptionInInitializerError 中的异常”错误
- c# - 如何检测 AsymmetricAlgorithm 是私钥还是公钥
- python - 如何合并列表列表中的两个元素?
- php - 在 laravel 中向多个用户发送电子邮件邀请
- sql-server - SSRS 颜色代码基于矩阵中两列之间的比较
- javascript - 根据 JavaScript 中的键列表对对象键进行排序
- query-string - 我可以为禁用了 Gmail 的特定 Google 帐户建立直接 URL 吗?
- ios - InApp 购买产品价格
- ios - iOS 推送通知服务扩展包 ID
- php - 在 collectionOperations (GET) 上使用 Symfony 投票者