.Net中OleDBAdapter.oleDBSelectCommand.CommandText=
SELECT WF_TYPE_ID, WF_TYPE_NAME, WF_CATEGORY, PROCESS_DAYS, DOC_TYPE_ID, ALLOW_AN
NEX, WF_PTYPE_ID, DELETED FROM TB_WF_TYPE WHERE (WF_TYPE_NAME = ?)oleDbConnection1.Open();
oleDbDataAdapter2.SelectCommand.Parameters["ID"].Value=(Decimal)10;
oleDbDataAdapter2.Fill(dataSet11.TB_TEST);
oleDbConnection1.Close();ID字段是Number型的。这段程序Oracle8.0.1.7能过,换到Oracle 9i就不行了,在Adapter.Fill
的时候发生异常。Exception.Message 是"Ora-01722:无效数字"请问怎么解决? 原来一直用MSSQL,Oracle怎么这么麻烦。PS:解决就给分啊!!!!

解决方案 »

  1.   

    上面的代码能编译通过?oleDbDataAdapter2.SelectCommand.Parameters.Add(...)在这里面指定数据类型
      

  2.   

    最好指定参数的数据类型和长度
    OleDbParameter myParameter = new OleDbParameter("ID", OleDbType.Decimal, 10);
    myParameter.Value = 10;
    oleDbDataAdapter2.SelectCommand.Parameters.Add(myParameter);
      

  3.   

    md,知道了。因为我用的Oracle OleDB Provider -_-|||
    用MS OleDB For Oracle好了