在表单之间传递字符串变量
本文关键字:字符串 变量 表单 之间 | 更新日期: 2023-09-27 17:58:10
我希望这里有人能帮助我或为我指明正确的方向。我正在尝试用C#创建一个应用程序,我有两个类,DB_Connection和MainForm。DB_Connection是与数据库进行连接的地方,MainForm是包含我的接口的主要表单。
我发现自己遇到了困难,我试图将一个字符串从DB_Connection表单传递到MainForm,但没有成功。这应该做的是从数据库中获取一个查询,将其分配给usr变量,并将该变量传递给MainForm,在那里它将由一个消息框收集(例如),所有这些都只需单击一个按钮。
感谢您的帮助!
DB_Connection findUsrn方法:
public void findUsrn()
{
try {
conn.Open();
if(conn.State.ToString() != "Open")
{
MessageBox.Show("Could not connect to the database");
return;
}
else
{
sql = "SELECT First_Name FROM all_users";
cmd = new MySqlCommand(sql, conn);
rdr = cmd.ExecuteReader();
while (rdr.Read()) {
usr = rdr.GetString(0);
}
rdr.Close();
conn.Close();
}
} catch (Exception ex) {
MessageBox.Show(ex.Message);
return;
throw;
}
}
MainForm BtnSearchClick事件:
void BtnSearchClick(object sender, EventArgs e)
{
DB_Connection frmDB = new DB_Connection();
string showUsr = frmDB.getString();
MessageBox.Show(showUsr);
}
您的findUsrn
方法是void
,因此它不返回任何内容。您的代码读取数据库并将结果放入局部变量usr
中,但随后不对其执行任何操作。由于usr
是局部的,因此当方法失去作用域时,它就会丢失。你可以让方法返回一个字符串:
public string findUsrn()
然后添加一个return子句(应该在conn.Close()
语句之后):
return usr;