如何将数据传递给OracleCommand类c#

本文关键字:OracleCommand 数据 | 更新日期: 2023-09-27 17:52:51

我正试图将变量传递给sql脚本并使用c#运行。

我得到一个错误说

"失踪的表达"。

fromDate和toDate以"dd//mm//yy"格式传递。是否使用oracleccommand传递参数不正确?

public void TransactionReport(string fromDate, string toDate)
        {
            string query = "select s.store_code,count(i.invc_sid) as count from invoice_v i Left join store_v s ON i.sbs_no = s.sbs_no and i.store_no = s.store_no Where(i.created_date between to_date(@fromDate,'MM//DD//YY') and to_date(@toDate,'MM//DD//YY'))  and i.proc_status not in ('131072','65536','147456', '81920') and i.invc_type = 0 AND i.sbs_no = 6  GROUP BY  s.store_code";
            conn.Open();
            using (OracleCommand cmd = new OracleCommand(query, conn))
            {
                cmd.Parameters.Add(new OracleParameter("fromDate", fromDate));
                cmd.Parameters.Add(new OracleParameter("toDate", toDate));
                OracleDataReader dr = cmd.ExecuteReader();

如何将数据传递给OracleCommand类c#

:代替@

string query = "select s.store_code,count(i.invc_sid) as count from invoice_v i Left join store_v s ON i.sbs_no = s.sbs_no and i.store_no = s.store_no Where(i.created_date between to_date(:fromDate,'MM//DD//YY') and to_date(:toDate,'MM//DD//YY'))  and i.proc_status not in ('131072','65536','147456', '81920') and i.invc_type = 0 AND i.sbs_no = 6  GROUP BY  s.store_code";

在oracle中你不应该使用@符号,这只适用于SQL Server,只删除@就可以了