首页 > 解决方案 > 出现此错误:无法将“System.DateTime”类型的对象转换为“Oracle.ManagedDataAccess.Client.OracleParameter”类型

问题描述

我正在尝试将选择查询传递到 oracle 数据库并使用以下代码作为参数传递

string startdate = "07/01/2021";
DateTime sd = DateTime.ParseExact(startdate, "d", provider);
OracleParameter param = new OracleParameter();
param.ParameterName = "startdate";
param.OracleDbType = OracleDbType.Date;
param.Value = sd;
cmd.Parameters.Add(param);

并且上面的代码运行良好并为我提供了所需的正确输出,但我想让它更短,所以使用以下代码行将其替换为

cmd.Parameters.Add(new OracleParameter("startdate", OracleDbType.Date).Value = sd);                    

我收到此错误无法将“System.DateTime”类型的对象转换为“Oracle.ManagedDataAccess.Client.OracleParameter”。 我不能使用第二种格式的原因是什么?

标签: c#oracle

解决方案


您使用了错误的语法。尝试这个

cmd.Parameters.Add("startdate", OracleDbType.Date).Value = sd;    

推荐阅读