c# - 条件表达式中的数据类型不匹配 ms-access c#
问题描述
我有MS Access
数据库有包含以下数据的表。
TradeDate TradeType TicketNo PassengerName
11-Feb-19 SALE 1234 ABC
12-Feb-19 PURCHASE 0345 XYZ
我想用 TradeType 获取两个日期之间的数据,下面是我的 C# 代码
public static DataTable GetSale(DateTime FromDate, DateTime ToDate, string TradeType)
{
DataTable dt = new DataTable();
OleDbConnection con = new OleDbConnection(Utility.GetConnectionString());
OleDbCommand cmd = new OleDbCommand("SELECT A.AgencyName, T.TradeDate, T.InvoiceNo, T.TicketNo, T.PassengerName, T.FatherName, T.TicketAmount, T.RefundAmount FROM Agencies AS A, Trade AS T WHERE T.Account_ID=A.Account_ID and T.TradeType=@TradeType And T.TradeDate>=@FromDate And T.TradeDate<@ToDate", con);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@FromDate", FromDate);
cmd.Parameters.AddWithValue("@ToDate", ToDate);
cmd.Parameters.AddWithValue("@TradeType", TradeType);
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
con.Open();
da.Fill(dt);
con.Close();
}
在执行我的代码时
条件表达式中的数据类型不匹配。
抛出异常。我究竟做错了什么?
解决方案
请使用...Parameters.Add(...)
而不是 AddWithValue
.
如果不显式提供 in 中的类型command.Parameters.Add("@param", SqlDbType.Int);
,它将尝试将输入隐式转换为预期的内容,但它会失败。
推荐阅读
- leaflet - 无法访问 Leaflet.Geoman 中的 event.layer
- javascript - google.maps.Geocoder 显示空结果
- magento2 - Magento 2 显示缺货的可配置产品
- python - 如何将向量中最近的元素与元素相关联
- batch-file - 批处理文件 - wmic - 空行
- scala - 是否可以在 Scala List 或 Map 中保留多个 DataFrame 以进行迭代处理
- sorting - 如何在 SAP ABAP 中对从用户接收到的数据进行排序,从大到小?
- azure - 使用 Azure 策略将客户管理的密钥附加到存储帐户
- sql - 每个连续行 BIGQUERY SQL 之间的时间戳差异
- java - 如何忽略在 Java 中不能分成 3 列的行?