Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.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#_Ms Access 2007 - Fatal编程技术网

C# 类型不匹配表达式

C# 类型不匹配表达式,c#,ms-access-2007,C#,Ms Access 2007,以下是我试图执行但出现错误的代码: string g = dateTimePicker1.Value.ToString("dd-MM-yyyy"); string h = dateTimePicker2.Value.ToString("dd-MM-yyyy"); //string sql2 = @"select Loanno,PName,Duedate,sum(Rec) as rec,sum(Loanamt) as amt from Due where Duedate between [@da

以下是我试图执行但出现错误的代码:

string g = dateTimePicker1.Value.ToString("dd-MM-yyyy");
string h = dateTimePicker2.Value.ToString("dd-MM-yyyy");

//string sql2 = @"select Loanno,PName,Duedate,sum(Rec) as rec,sum(Loanamt) as amt from Due where Duedate between [@date1] and [@date2] group by PName order by Loanno asc";

string sql2 = @"select Due.Loanno,Due.PName,Due.Duedate,sum(Due.Rec) as rec,sum(Due.Loanamt) as amt from Due  inner join Party_Det on Due.Loanno=Party_Det.Loanno where Due.Duedate between [@date1] and [@date2] group by Due.Loanno,Due.PName,Due.Duedate";

OleDbCommand cmd2 = new OleDbCommand(sql2, con);
cmd2.Parameters.AddWithValue("@date1", g);
cmd2.Parameters.AddWithValue("@date2", h);
cmd2.ExecuteNonQuery();

DataTable dt=new DataTable();
OleDbDataAdapter da = new OleDbDataAdapter(cmd2);
da.Fill(dt);

dataGridView1.DataSource = dt;
con.Close();
试试这个

string sql2 = @"select Due.Loanno, Due.PName, Due.Duedate, sum(Due.Rec) as rec,sum(Due.Loanamt) as amt from Due  inner join Party_Det on Due.Loanno=Party_Det.Loanno where Due.Duedate between @date1 and @date2 group by Due.Loanno,Due.PName,Due.Duedate";
OleDbCommand cmd2 = new OleDbCommand(sql2, con);

cmd2.Parameters.AddWithValue("@date1", dateTimePicker1.Value.Date);
cmd2.Parameters.AddWithValue("@date2", dateTimePicker2.Value.Date);

cmd2.ExecuteNonQuery();
DataTable dt=new DataTable();
OleDbDataAdapter da = new OleDbDataAdapter(cmd2);

da.Fill(dt);
dataGridView1.DataSource = dt;
con.Close();    

添加:为什么需要加入
Party\u det
表?您没有使用该表中的任何字段。。确保两个表中的
Loanno
列的数据类型相同。

添加完整的错误消息问题不是以日期格式,而是在querySystem.data.Oledb.oledbe帮助中查询问题:表达式中的类型不匹配尝试更新的答案。。。您使用的是传递
String
值来代替
Date
在MS Access中运行查询,并查看查询结果。我怀疑这不是截止日期。。。检查
Rec
Loanamt
列的类型,并确保在计算这些字段的总和时它们是数字。是,我检查了。问题不在于日期,而在于查询