简单的搜索程序不会返回结果c#

时间:2013-01-19 06:06:00

标签: c# winforms search for-loop

我正在尝试做一个简单的搜索程序,允许用户搜索员工的姓名,然后点击搜索按钮,这将返回员工的详细信息。

在我的表格中我有:

    private void buttonSearch_Click(object sender, EventArgs e)
    {
        //set datasource
        dataGridView1.DataSource = controller_emp.search_employee(textBoxSearch.Text);
    }

Controller_Employee:

    public Model_Employee search_employee(string criteria)
    {
        return db.search_employee(criteria);
    }

Model_DB_Employee:

    public Model_Employee search_employee(string criteria)
    {

        Model_Employee result = new Model_Employee();
        for (int i = 0; i < rows.Count; i++)
        {
            if ((string)empTab.Rows[i]["emp_fname"] == criteria)
            {
                result.setId(empTab.Rows[i]["emp_id"].ToString());
                result.setFname(empTab.Rows[i]["emp_fname"].ToString());
                result.setLname(empTab.Rows[i]["emp_lname"].ToString());
                result.setUsername(empTab.Rows[i]["username"].ToString());
                result.setPassword(empTab.Rows[i]["passwd"].ToString());
                result.setJobrole(empTab.Rows[i]["job_role"].ToString());
                result.setContact(empTab.Rows[i]["contact"].ToString());
                result.setEmail(empTab.Rows[i]["email"].ToString());
            }

        }
        return result;

    }

for循环有什么问题吗?即使满足criteria,它也会继续循环。

2 个答案:

答案 0 :(得分:1)

使用break;

for (int i = 0; i < rows.Count; i++)
{
    if ((string)empTab.Rows[i]["emp_fname"] == criteria)
    {
        //result stuff
        break;
    }
}
return result;

答案 1 :(得分:0)

找到员工时,您没有退出循环。 您可以: 1.在使用信息填充结果后立即使用break 2.在使用信息

填充结果后立即复制return result;

我最喜欢的选项1:)