C# 按日期查询Ms Access winform数据gridview
我使用以下代码用MS Access数据库中的dataadapter填充datagridview,它不会给出任何错误,但不会返回任何值 这是密码C# 按日期查询Ms Access winform数据gridview,c#,ms-access,datagridview,C#,Ms Access,Datagridview,我使用以下代码用MS Access数据库中的dataadapter填充datagridview,它不会给出任何错误,但不会返回任何值 这是密码 private void button1_Click_1(object sender, EventArgs e) { OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;User Id=;Password=;Data Sou
private void button1_Click_1(object sender, EventArgs e)
{
OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;User Id=;Password=;Data Source=TS-POS.accdb");
conn.Open();
OleDbDataAdapter dataAdapter = new OleDbDataAdapter("SELECT InvoiceNo, DayDate, Gross, Net, Staff FROM GrossSales Where DayDate = #" + dateFrom.Value.ToString("MM'/'dd'/'yyyy") + "#;", conn);
DataSet ds = new DataSet();
dataAdapter.Fill(ds);
dataGridView2.DataSource = ds.Tables[0];
dataGridView2.Columns["InvoiceNo"].HeaderText = "رقم الفاتورة";
dataGridView2.Columns["InvoiceNo"].Width = 150;
dataGridView2.Columns["DayDate"].HeaderText = " التاريخ";
dataGridView2.Columns["DayDate"].Width = 350;
dataGridView2.Columns["Gross"].HeaderText = "الإجمالي";
dataGridView2.Columns["Gross"].Width = 150;
dataGridView2.Columns["Net"].HeaderText = " الصافي";
dataGridView2.Columns["Net"].Width = 150;
dataGridView2.Columns["Staff"].HeaderText = " الموظف";
dataGridView2.Columns["Staff"].Width = 150;
conn.Close();
}
下面是它在数据库中的显示方式
您可以使用:
OleDbDataAdapter dataAdapter = new OleDbDataAdapter("SELECT InvoiceNo, DayDate, Gross, Net, Staff FROM GrossSales Where DayDate >= #" + dateFrom.Value.ToString("yyyy'/'MM'/'dd") + "# And DayDate < #" + dateFrom.Value.AddDays(1).ToString("yyyy'/'MM'/'dd") + "#;", conn);
那么,填充后ds中的datatable中是否有行?还有,为什么要在设置数据源后设置列?@TaW否,当表单打开时,它会在不使用Where daydate=条件的情况下被填充。。但一旦我选择了日期并点击搜索,它就是empy-为列?它必须在适配器查询之前设置?因此条件可能是错误的,或者现在有合适的行。最好注销实际的sql字符串并使用它!您可能缺少时间组件?至于专栏:不,对不起,我没有正确阅读;你只是在设计它们;这是很好的,因为它是你会写一些像日期之后和更小的日期+1注意日期和时间文件确实包含在Access中的时间组件只是liek DateTime在c中。这就是问题的原因。通常的方法是只填写日期部分。。我相信Access中有JustDate条款。或field.DateValue子句.Date应返回当前系统日期。要仅选择日期部分,此操作应有效:DateValue[DayDate]=。。