【发布时间】:2021-06-04 16:41:52
【问题描述】:
我有一个包含两种形式的程序 第一个表单是主表单,是程序将从它开始的表单 第二种形式是只显示一次以接受价值观的形式,然后会回到第一种形式,第二种形式将关闭 注意:在开始时,程序将做一个从两个开始
- 如果值不在程序中,则显示第二个表单,然后关闭第二个并转到第一个。
- 如果程序具有值,则在其上显示第一个和县。
注意:当第二个表单出现时,第一个表单将被隐藏,然后程序从用户那里获取值后,第二个表单将关闭并显示第一个表单
换句话说,如果用户向程序提供第二个表单之前的值将不会出现,只会出现第一个表单
问题是在第二个表单取值后第一个表单打开时,第二个表单仍然打开
代码形式1
private void Form1_Load(object sender, EventArgs e)
{
b();
}
private void b()
{
Open();
String SqlQuery = "SELECT * from test1";
DataTable dt = new DataTable();
dt = fetchData(SqlQuery);
if (!(dt.Rows.Count >0))
{
MessageBox.Show("incorect user");
fm2 = new Form2();
fm2.Show();
this.Hide();
}
}
代码形式2
public void fn()
{
String SqlQuery = "SELECT * from test1 ";
DataTable dt = new DataTable();
dt = fetchData(SqlQuery);
if (dt.Rows.Count > 0)
{
Application.OpenForms[0].Show();
MessageBox.Show("DONE");
this.Close();
}
}
private void button1_Click(object sender, EventArgs e)
{
string insertQuery = "INSERT INTO test1( name, phone) VALUES" +
"('" + (textBox1.Text) + "','" + (textBox2.Text) + "')";
ExcuteQuery(insertQuery);
fn();
}
我有一个问题,就是我让它隐藏在代码之后在后台运行的 form1
Application.OpenForms[0].Show();
【问题讨论】:
-
仅供参考,如果您只是要在下一行重新分配
dt = new DataTable();,那么分配dt = new DataTable();是没有意义的……您可以这样做DataTable dt = fetchData(SqlQuery); -
另外,您的代码对 SQL 注入是开放的;请使用命名参数,而不是将表单中的文本连接到查询字符串中。
标签: c# sql-server