Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 找到体验并用它向用户展示_C#_Datetime_Datagridview - Fatal编程技术网

C# 找到体验并用它向用户展示

C# 找到体验并用它向用户展示,c#,datetime,datagridview,C#,Datetime,Datagridview,我有一个文本框,用户在其中输入一些数字,例如6。我有一个基于我的类的datagridview,它包含姓名、工作日期和职位。我需要向在本公司工作6年或以上的员工展示。当用户输入一个新号码时,显示在该段时间内工作的新员工列表。有必要从今天的日期中减去雇佣日期,如果该数字等于或高于文本框中输入的数字,则显示在本公司具有此类工作经验的员工。我已经对name做了类似的操作,下面是代码: var text = textBox4.Text; var result = workers.MyList.Where(

我有一个文本框,用户在其中输入一些数字,例如6。我有一个基于我的类的datagridview,它包含姓名、工作日期和职位。我需要向在本公司工作6年或以上的员工展示。当用户输入一个新号码时,显示在该段时间内工作的新员工列表。有必要从今天的日期中减去雇佣日期,如果该数字等于或高于文本框中输入的数字,则显示在本公司具有此类工作经验的员工。我已经对name做了类似的操作,下面是代码:

var text = textBox4.Text;
var result = workers.MyList.Where(m => m._Name == text).ToList();
dataGridView1.DataSource = result;
对于添加新员工,我使用了:

workers.Add(new employee(textBox1.Text, dateTimePicker1.Value, textBox2.Text));
var data = workers.MyList.Select(bring => new
{
    Name = bring._Name,
    Date = bring._Date,
    Position = bring._Position,
}).ToList();
dataGridView1.DataSource = data;

如果您的
Date
属性是类型为
DateTime
的员工加入日期,则可以尝试以下代码:

if(int.TryParse(textBox3.Text, out int exp))
{
   //Get difference between today's year and  Date year
   dataGridView1.DataSource = data
                .Where(x => (DateTime.Today.Year - x.Date.Year) >= exp)  
                .ToList(); //Convert to list
}
else
   MessageBox.Show("Invalid experiece enter a number", "Invalid experience", MessageBoxButtons.OK, MessageBoxIcon.Error);
这是为我工作

var exp = Convert.ToInt32(textBox3.Text);
var res=  workers.MyList.Where(x => (DateTime.Now.Year - x._Date.Year) >= exp)
            .ToList(); //Convert to list
dataGridView1.DataSource = res;

您在
worker.MyList
中有关于加入日期的属性吗?向我们显示用于experience@PrasadTelkikar我在帖子中添加了我添加新员工的方式您的
日期
属性是否包含加入日期?@prasadelkikikar是的,是datatime我需要从文本框中获取有关年份的信息,是的,我的日期类型是DateTime。我这样尝试了,但没有成功。私有void textBox3_TextChanged(对象发送者,事件参数e){int exp=Convert.ToInt32(textBox3.Text);var resultt=workers.MyList.Where(x=>(x._Date.Year-DateTime.Now.Year)>=exp.ToList();//转换为列表dataGridView1.DataSource=resultt;}有效,我刚换了x.Date.Year和今天。谢谢哦,是的,很抱歉,
加入日期总是小于
今天的日期。我在我的答案
Convert中修复了它。如果文本框包含非整数值,ToInt32
将抛出错误,请检查我使用的答案
int.TryParse()
@prasadelkikikar是的,它也起作用,但我对它做了一些更改。如果(int.TryParse(textBox3.Text,out int exp)){var result=workers.MyList.Where(x=>(DateTime.Now.Year-x.(u Date.Year)>=exp.ToList();dataGridView1.DataSource=result;}else MessageBox.Show(“无效经验输入数字”,“无效经验”,MessageBoxButtons.OK,MessageBoxIcon.Error);}