当前位置:  开发笔记 > 编程语言 > 正文

c#if else循环

如何解决《c#ifelse循环》经验,为你挑选了1个好方法。

我需要一些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();

Jon Skeet.. 5

只是为了将我的评论扩展到一个答案 - 我觉得这样做的方向是错误的.我会将设计更改为(有点伪代码):

void FindUserOrRegister()
{
    User user = GetUserFromDatabase();
    if (user != null)
    {
        new MainApplicationForm(user).Show();
    }
    else
    {
        new RegistrationForm().Show();
    }
}

然后可能RegistrationForm逻辑调用FindUserOrRegister作为其注册流程的一部分 - 如果用户选择关闭表单,那么整个应用程序应该关闭(大概)...但是否则,当注册完成时,您可以关闭表单然后FindUserOrRegister再次调用,然后将启动主窗体.

或者,注册表可以在注册完成后直接启动主申请表.

我有点在猜测你想在这里做什么,但我认为它至少值从UI流分离的数据库代码-因为它并试图做到这一点更事件驱动的方式,是否应该继续进行更改的用户.如果您正在等待其他人向数据库添加记录,那么您最好使用某种计时器重复查询数据库(在后台线程中 - 线程是您需要了解的另一个区域,以避免您的你在查询数据库时挂起UI,顺便说一句,但在这里我认为你不需要它.



1> Jon Skeet..:

只是为了将我的评论扩展到一个答案 - 我觉得这样做的方向是错误的.我会将设计更改为(有点伪代码):

void FindUserOrRegister()
{
    User user = GetUserFromDatabase();
    if (user != null)
    {
        new MainApplicationForm(user).Show();
    }
    else
    {
        new RegistrationForm().Show();
    }
}

然后可能RegistrationForm逻辑调用FindUserOrRegister作为其注册流程的一部分 - 如果用户选择关闭表单,那么整个应用程序应该关闭(大概)...但是否则,当注册完成时,您可以关闭表单然后FindUserOrRegister再次调用,然后将启动主窗体.

或者,注册表可以在注册完成后直接启动主申请表.

我有点在猜测你想在这里做什么,但我认为它至少值从UI流分离的数据库代码-因为它并试图做到这一点更事件驱动的方式,是否应该继续进行更改的用户.如果您正在等待其他人向数据库添加记录,那么您最好使用某种计时器重复查询数据库(在后台线程中 - 线程是您需要了解的另一个区域,以避免您的你在查询数据库时挂起UI,顺便说一句,但在这里我认为你不需要它.

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有