C# 如何使用文本框和按钮按id查找员工

C# 如何使用文本框和按钮按id查找员工,c#,button,textbox,C#,Button,Textbox,我的问题是如何根据员工ID查找员工,例如,如果我在文本框17432中键入,当我单击搜索按钮时,它应该为我提供员工ID全名姓氏和薪资信息 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tas

我的问题是如何根据员工ID查找员工,例如,如果我在文本框17432中键入,当我单击搜索按钮时,它应该为我提供员工ID全名姓氏和薪资信息

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Project_employee
{
    public partial class Form1 : Form
    {
        Employee[] employee = new Employee[10];

        public Form1()
        {
            InitializeComponent();
            employee[0] = new Employee(17432, "john", "Adverd", 800.00);
            employee[1] = new Employee(17433, "Adrian", "Smith", 800.00);
            employee[2] = new Employee(17434, "Stephen", "Rad", 9000.00);
            employee[3] = new Employee(17435, "Jesse", "Harris", 800.00);
            employee[4] = new Employee(17436, "jonatan", "Morris", 9500.00);
            employee[5] = new Employee(17437, "Morgen", "Freeman", 12000.00);
            employee[6] = new Employee(17438, "Leory", "Gomez", 10200.00);
            employee[7] = new Employee(17439, "Michael", "Brown", 9000.00);
            employee[8] = new Employee(17440, "Andrew", "White", 3500.00);
            employee[9] = new Employee(17441, "Maria", "Carson", 17000.00);
        }

        private void Searchbtn_Click(object sender, EventArgs e)
        {
            listBox1.Items.Clear();

            for (int i = 0; i < 10; i++)
            {
                string employeeString = employee[i].employeeInformationToString() + "\r\n";

                listBox1.Items.Add(employeeString);

            }

        }
        public void Lowestemployeesalary()
        {
            listBox1.Items.Clear();
            double Minimumsal = employee[0].Salary;
            for(int i = 0; i < employee.Count(); i++)
            {
                if(Minimumsal > employee[i].Salary )
                {
                    Minimumsal = employee[i].Salary;
                }
            }
            for(int j = 0; j < employee.Count(); j++)
            {
                if(Minimumsal == employee[j].Salary)
                {
                    string result = string.Format("{0} {1} {2} {3}", employee[j].EmployeeIDNum, employee[j].FullName, employee[j].LastName, employee[j].Salary);
                    listBox1.Items.Add(result);
                }
            }
        }
        public void Highemployeesalary()
        {
            listBox1.Items.Clear();
            double Mixsal = employee[0].Salary;
            for (int i = 0; i < employee.Count(); i++)
            {
                if (Mixsal < employee[i].Salary)
                {
                    Mixsal = employee[i].Salary;
                }
            }
            for (int j = 0; j < employee.Count(); j++)
            {
                if (Mixsal == employee[j].Salary)
                {
                    string result = string.Format("{0} {1} {2} {3}", employee[j].EmployeeIDNum, employee[j].FullName, employee[j].LastName, employee[j].Salary);
                    listBox1.Items.Add(result);
                }
            }
        }
        private void getinfibtn_Click(object sender, EventArgs e)
        {
            Lowestemployeesalary();
        }
        private void highestbtn_Click(object sender, EventArgs e)
        {
            Highemployeesalary();
        }

        private void sreachbtn_Click(object sender, EventArgs e)
        {
           //// Need Some Thing Here
        }
    }
}

您的表单中有
员工的集合

您只需要简单的
Linq
就可以为给定的employeeid找到一名员工

var found = employee.FirstOrDefault(e=>e.EmployeeIDNum == employeeid);

if(found != null)
{
    // logic here.
   //  found.employeeInformationToString();

    listBox1.Items.Clear(); // check this if you want to clear.
    listBox1.Items.Add(found.employeeInformationToString());
} 
所以你的完整搜索代码应该是

private void sreachbtn_Click(object sender, EventArgs e) 
{
    //// Need Some Thing Here

    int employeeid;

    if(int.TryParse(textbo1.Text, out employeeid)) // use your textbox name.
    {
        var found = employee.FirstOrDefault(e=>e.EmployeeIDNum == employeeid);

        if(found != null)
        {
            // logic here.
            found.employeeInformationToString()
        }
    }

}
更新:

看起来您不熟悉
Linq
,在这种情况下,请尝试使用传统的循环

private void sreachbtn_Click(object sender, EventArgs e) 
{
    //// Need Some Thing Here

    int employeeid;

    if(int.TryParse(textbo1.Text, out employeeid))
    {
        Employee found= null;

        foreach(var emp in employee)
        {
            if(emp.EmployeeIDNum == employeeid)
            {
                found = emp;
                break;
            }
        }

        //var found = employee.FirstOrDefault(e=>e.EmployeeIDNum == employeeid);

        if(found != null)
        {
            // logic here.
            found.employeeInformationToString()
        }
    }
}
给你

private void sreachbtn_Click(object sender, EventArgs e)
{
    int searchID = int.Parse(txtIdSearch.Text);
    // Need to handle if the user input is not a number..
    Employee[] employeeResults = employee.Where(e => e.employeeID == searchID).ToArray();
    // For possibility that your ID is not unique..
    // code to display results
    for (int i = 0; i < employeeResults .Length; i++)
    {
        string employeeString = employeeResults [i].employeeInformationToString() + "\r\n";

        listBox1.Items.Add(employeeString);

    }
 }
private void sreachbtn\u单击(对象发送方,事件参数e)
{
int searchID=int.Parse(txtIdSearch.Text);
//如果用户输入不是数字,则需要处理。。
Employee[]employeeResults=Employee.Where(e=>e.employeeID==searchID.ToArray();
//您的ID可能不是唯一的。。
//显示结果的代码
for(int i=0;i
我遇到此错误,无法在此作用域中声明名为“e”的本地或参数,因为该名称在封闭的本地作用域中用于定义本地或参数项目Employee我遇到此错误,无法在此作用域中声明名为“e”的本地或参数,因为该名称在封闭的本地作用域中用于定义本地或参数参数Project employeei现在收到此错误使用未分配的局部变量'found'Project Employee只是说
Employee found=null
现在另一个错误名称'EmployeeIDNum'在当前上下文项目employeei中不存在,但在类中存在
private void sreachbtn_Click(object sender, EventArgs e)
{
    int searchID = int.Parse(txtIdSearch.Text);
    // Need to handle if the user input is not a number..
    Employee[] employeeResults = employee.Where(e => e.employeeID == searchID).ToArray();
    // For possibility that your ID is not unique..
    // code to display results
    for (int i = 0; i < employeeResults .Length; i++)
    {
        string employeeString = employeeResults [i].employeeInformationToString() + "\r\n";

        listBox1.Items.Add(employeeString);

    }
 }