我需要一些if else部分的帮助.现在,我的代码显示"if row = 0,user not found".但我想循环,如果没有检测到任何东西,继续循环,直到事件发生变化.我如何在这里循环?
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();
Run Code Online (Sandbox Code Playgroud)
只是为了将我的评论扩展到一个答案 - 我觉得这样做的方向是错误的.我会将设计更改为(有点伪代码):
void FindUserOrRegister()
{
User user = GetUserFromDatabase();
if (user != null)
{
new MainApplicationForm(user).Show();
}
else
{
new RegistrationForm().Show();
}
}
Run Code Online (Sandbox Code Playgroud)
然后可能将RegistrationForm逻辑调用FindUserOrRegister作为其注册流程的一部分 - 如果用户选择关闭表单,那么整个应用程序应该关闭(大概)...但是否则,当注册完成时,您可以关闭表单然后FindUserOrRegister再次调用,然后将启动主窗体.
或者,注册表可以在注册完成后直接启动主申请表.
我有点在猜测你想在这里做什么,但我不认为它至少值从UI流分离的数据库代码-因为它并试图做到这一点更事件驱动的方式,是否应该继续进行更改的用户.如果您正在等待其他人向数据库添加记录,那么您最好使用某种计时器重复查询数据库(在后台线程中 - 线程是您需要了解的另一个区域,以避免您的你在查询数据库时挂起UI,顺便说一句,但在这里我认为你不需要它.
| 归档时间: |
|
| 查看次数: |
308 次 |
| 最近记录: |