C# 数据类型不匹配条件表达式“3个表之间的联接”
我有三张表:供应商、账单和付款。每个供应商都有付款和账单。我想检索这样的报告: 供应商名称|账单总额|付款总额|余额 由2个DateTimePicker指定的特定时间段 这是我的SQL查询:C# 数据类型不匹配条件表达式“3个表之间的联接”,c#,sql,ms-access,C#,Sql,Ms Access,我有三张表:供应商、账单和付款。每个供应商都有付款和账单。我想检索这样的报告: 供应商名称|账单总额|付款总额|余额 由2个DateTimePicker指定的特定时间段 这是我的SQL查询: OleDbCommand cmd = new OleDbCommand("select c.sup_Name,c.sup_Place,sum(a.bill_Total),sum(d.pa_Value) from (suppliers c left JOIN bills a on c.sup_Id = a
OleDbCommand cmd = new OleDbCommand("select c.sup_Name,c.sup_Place,sum(a.bill_Total),sum(d.pa_Value)
from (suppliers c left JOIN bills a
on c.sup_Id = a.bill_From)
left join payments d on c.sup_Id = d.pa_To
where (a.bill_Date >= '" + txbFrom.Text + "' and a.bill_Date <= '" + txbTo.Text + "') and (d.pa_EntryDate >= '" + txbFrom.Text + "' and d.pa_EntryDate <= '" + txbTo.Text + "')
group by c.sup_Name,c.sup_Place order by c.sup_Name asc", objConn);
OleDbDataReader dataReader = cmd.ExecuteReader();// Here the error appear.
对于MySQL,我必须转换date:dt=DateTime,这可以很容易地从DateTimePicker中提取出来
不要将参数格式化为SQL字符串:而是使用OleDbParameter为您执行此操作并帮助避免SQL注入攻击
使用参数化查询,但我非常确定MSAccess中的日期应该用分隔符分隔,而不是“.您可以提供更多信息吗?@ValAsensio,我为其添加了一个图像relations@RonBeyer,Sry我说了没有,但它起作用了。。yAlso请注意,除非还指定了时间,否则时间默认为00:00:00,因此如果检查我是否找到了解决方案,感谢您的帮助,请选择日期而不是日期。
dt.ToString("yyyy-MM-dd H:mm:ss");