刚刚用Asp.net不久,所以遇到些弱智的问题,我数据库中定义了一些函数,但是call了之后,怎么得到它们返回的值啊?ExcuteQurey只能得到影响的行数……

解决方案 »

  1.   

    给个具体的应用嘛。
    获取的值很多种。
    DataReader["columName"].
    DataTable.Rows[1][2];
      

  2.   

    我不是用的存储过程,用的function.因为函数比较多,不能全部去改写。比如其中一个function:
    CREATE OR REPLACE FUNCTION "LIBRARYMS"."GETBOOKINGLIMIT" 
    ( readerID integer ) //输入参数
    return integer //返回值
    AS //局部变量
    a integer ; b integer 
    BEGIN//函数体
     select typeID into a from libraryms
    .libraryms.reader where IDNum = readerID ; select bookinglimit into b from libraryms.libraryms
    .readertype where ID = a ;
    return b ; END ;
    用的是特殊的数据库,但是和SQLsever类似。在oleDbCommand中,我call了这个函数,但是不知道怎么获得它的返回值。
      

  3.   

    1.可以使用CommandParameter,设置方向
    2.return b ->select b仔细看了一下,b是个表,楼主莫非要返回一个表?
      

  4.   

    b不是表,只是一个integer型的局部变量。select b 是不行的,因为b只是在函数内部有效。不过call GETBOOKINGLIMIT(1)会返回一个integer值。
    难道用select * as a from getbookinglimit(1)?
    然后用CommandParameter获取a?
      

  5.   

    把楼主的当成存储过程了。
    这个数据库和SQL Server有点差异。楼主用SELECT getbookinglimit(1)应该就可以获取返回值了吧
      

  6.   

    数据库函数的调用应该如下:(ORACLE数据库)
    sql = "select 函数名(参数) from dual "
    后面的DUAL是虚拟表,不是实体表