Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 并非所有变量都已绑定(但它们已存在)_C#_Oracle_Parameters_Ora 01008 - Fatal编程技术网

C# 并非所有变量都已绑定(但它们已存在)

C# 并非所有变量都已绑定(但它们已存在),c#,oracle,parameters,ora-01008,C#,Oracle,Parameters,Ora 01008,我对这种方法有问题。所有的参数都在那里,按顺序排列,但我仍然得到这个错误:ORA-01008:不是所有变量都有界 protected void LastUpdateDates(string Path, string Key, bool Update) { //load the update dates of the mta files try { FileInfo file

我对这种方法有问题。所有的参数都在那里,按顺序排列,但我仍然得到这个错误:ORA-01008:不是所有变量都有界

protected void LastUpdateDates(string Path, string Key, bool Update)
        {
            //load the update dates of the mta files 
            try
            {
                FileInfo file = new FileInfo(Path);
                string query = string.Empty;

                if (myOleDbConnection.State == ConnectionState.Closed) { myOleDbConnection.Open(); }
                OleDbCommand myOleDbCommand = new OleDbCommand();                
                query = "UPDATE USER_LINK_MTA_LOGS SET DT_ATUALIZACAO=:PDT, DS_CAMINHO=:PFULLNAME WHERE ID_ARQUIVO=:PKEY";


                myOleDbCommand.Connection = myOleDbConnection;
                myOleDbCommand.CommandText = query;
                myOleDbCommand.Parameters.AddWithValue(":PDT", file.LastWriteTime);
                myOleDbCommand.Parameters.AddWithValue(":PFULLNAME", file.FullName);
                myOleDbCommand.Parameters.AddWithValue(":PKEY", Key);

                myOleDbCommand.ExecuteNonQuery();

                myOleDbCommand.Dispose();


            }
            catch (Exception exxx)
            {
                ErrorHandler.TreatError("Could not obtain MTA configuration\r\n" + exxx);
            }

        }
现在我试过了吗?如双向飞碟所说的占位者:

myOleDbCommand.Parameters.Add(file.LastWriteTime.ToString(),OleDbType.DBTimeStamp);
myOleDbCommand.Parameters.Add(file.FullName,OleDbType.VarChar);
myOleDbCommand.Parameters.Add(Key,OleDbType.VarChar);
通过上面的方法,我在运行ExecuteOnQuery时得到了下面的错误

Par–metro[0]”não tem valor padrão。翻译:参数[0]没有标准值。
巴黎地铁〔1〕 巴黎地铁〔2〕〉p> 下面也尝试了这种方法,在尝试设置参数时出错

myOleDbCommand.Parameters.Add(file.LastWriteTime);
myOleDbCommand.Parameters.Add(file.FullName);
myOleDbCommand.Parameters.Add(Key);
OLEDB参数集合sóaceita objetos do tipo OLEDB参数não nulos,não aceita objetos DateTime.
Translate:OLEDBPParameterCollection仅接受OLEDBPParameter类型的非空对象。不接受日期时间类型的对象。

根据,您不能使用命名参数:

OLE DB.NET提供程序不支持 支持用于传递的命名参数 SQL语句或 由 设置CommandType时的OleDbCommand 发短信。在这种情况下,问题是 必须使用标记(?)占位符


您尝试过使用占位符吗?

如上所述,我已经根据您的建议更新了问题