c# if else looping
本文关键字:looping else if | 更新日期: 2023-09-27 18:13:50
我在if else部分需要一些帮助。现在,我的代码显示"如果row=0,用户未找到"。但我希望它循环,即如果没有检测到,继续循环,直到事件发生变化。我怎么做这个循环呢?
string strOleDbConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:''Project.mdb";
string strSqlStatement = string.Empty;
strSqlStatement = "SELECT * FROM jiahe WHERE [Tag ID] = '" + txt + "'";
OleDbConnection objConnection = new OleDbConnection(strOleDbConnectionString);
OleDbDataAdapter objAdapter = new OleDbDataAdapter(strSqlStatement, objConnection);
DataSet ds = new DataSet();
objAdapter.Fill(ds);
DataTable dt = ds.Tables[0];
dataGridView1.DataSource = dt.DefaultView;
if (dt.Rows.Count == 0)
{
MessageBox.Show("Not Found. Please register new user.");
Form2 frm2 = new Form2();
frm2.Show();
}
else
{
string strLine = string.Empty;
string strUser = string.Empty;
foreach (DataRow dr in dt.Rows)
{
string strTags = dr["Tag ID"].ToString();
strUser = dr["User"].ToString();
string strAge = dr["Age"].ToString();
string strPhoneNumber = dr["Phone Number"].ToString();
只是把我的评论扩展成一个答案-我觉得这是在错误的方向。我会将设计更改为(有点伪代码):
void FindUserOrRegister()
{
User user = GetUserFromDatabase();
if (user != null)
{
new MainApplicationForm(user).Show();
}
else
{
new RegistrationForm().Show();
}
}
然后可能使RegistrationForm
逻辑调用FindUserOrRegister
作为其注册流程的一部分-如果用户选择只是关闭表单,那么整个应用程序应该关闭(大概)…否则,当注册完成时,您可以关闭表单,然后再次调用FindUserOrRegister
,这将启动主表单。
或者,注册表单可以在注册完成后直接启动主应用程序。
我有点猜测你在这里想做什么,但我做认为至少值得将数据库代码从UI流中分离出来-并尝试以更事件驱动的方式做到这一点,因为它是用户将改变你是否应该继续。如果你正在等待其他人向数据库添加记录,你最好使用某种计时器反复查询数据库(在后台线程中-线程是另一个你需要学习的领域,以避免在查询数据库时UI挂起,顺便说一下),但这里我认为你不需要。