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
列的类型,并确保在计算这些字段的总和时它们是数字。是,我检查了。问题不在于日期,而在于查询