我有一个accdb数据库文件,ExpiryDate设置为DATETIME。数据网格视图的格式为dd/MM/yyyy。我正试图过滤到日期之间的绑定,如下所示:
private void button1_Click(object sender, EventArgs e)
{
DateTime srchDateTo = DateTime.Today.AddMonths(1);
DateTime srchDateFrom = DateTime.Today.AddMonths(-11);
client1BindingSource.Filter = "ExpiryDate < #" + srchDateTo + "# And ExpiryDate > #" + srchDateFrom + "#";
}
当我单击按钮时,我得到:"字符串未被识别为有效的DateTime。">
我放了一个消息框,变量的格式是正确的。
这是我的第一个数据库,我有很多东西要学,所以在研究回复之前,我可能无法理解回复。
我的理解是,在将DateTime粘贴到过滤器中之前,需要对其进行格式化。
请在DateTime变量的末尾尝试.ToString("dd/MM/yyyy")
。
例如:
client1BindingSource.Filter = "ExpiryDate < #" +
DateTime.Today.AddMonths(1).ToString("dd/MM/yyyy") + "# And ExpiryDate > #" +
DateTime.Today.AddMonths(-11).ToString("dd/MM/yyyy") + "#";
快乐编码:(
我发现不是有效日期时间的字符串是字段标题。答案是使用字符串变量,而不是日期时间变量。
string srchDateTo = DateTime.Today.AddMonths(1).ToString("dd/MMM/yyyy");
string srchDateFrom = DateTime.Today.AddMonths(-11).ToString("dd/MMM/yyyy");
client1BindingSource.Filter = "ExpiryDate < #" + srchDateTo + "# And ExpiryDate > #" + srchDateFrom + "#";