在C#中,调用ORACLE存储过程时,若存储过程有CURSOR类型的参数,可以通过下述语句添加: OracleCommand oraComm = new OracleCommand(); 
oraComm.Parameters.Add("cur_name",OracleType.Cursor); 
oraComm.Parameters["cur_name"].Direction = ParameterDirection.Output; 其中, 
OracleType.Cursor指定参数的类型为CURSOR类型。。 但是当调用SQL SERVER存储过程时,没有与OracleType.Cursor对应的SqlDbType.Cursor,请问CURSOR参数类型在哪里指定??? 

解决方案 »

  1.   

    http://topic.csdn.net/u/20080109/09/83e10321-1142-40dd-88d8-dbf1d5fcc187.html
      

  2.   

    Oracle不能直接返回记录集,需要通过一个 out 参数达到目的。在OracleType中有一个OracleType.Cursor 类型与之对应
    在SQL中直接返回记录集
      

  3.   

    SQLSERVER没有不想改代码,就改你的存储过程吧
      

  4.   

    SQL SERVER中没有吗????
      

  5.   


    如果SQL存储过程有CURSOR类型的参数,,怎么办??如何调用??
      

  6.   

    Cursor没有必要,效率很低,你是想执行完sql以后,在查询数据到DataTable中
    可以开始事务,然后进行查询,只要过程里面不commit;只有锁定用户能看到数据可以参考FortuneBase框架
    参考地址www.cnblogs.com/mail-ricklee
      

  7.   

    SQL帮助上有啊,你可以看一看了:
    SET NOCOUNT ONDECLARE @vendor_id int, @vendor_name nvarchar(50),
    @message varchar(80), @product nvarchar(50)PRINT '-------- Vendor Products Report --------'DECLARE vendor_cursor CURSOR FOR 
    SELECT VendorID, Name
    FROM Purchasing.Vendor
    WHERE PreferredVendorStatus = 1
    ORDER BY VendorIDOPEN vendor_cursorFETCH NEXT FROM vendor_cursor 
    INTO @vendor_id, @vendor_nameWHILE @@FETCH_STATUS = 0
    BEGIN
    PRINT ' '
    SELECT @message = '----- Products From Vendor: ' + 
    @vendor_namePRINT @message-- Declare an inner cursor based   
    -- on vendor_id from the outer cursor.DECLARE product_cursor CURSOR FOR 
    SELECT v.Name
    FROM Purchasing.ProductVendor pv, Production.Product v
    WHERE pv.ProductID = v.ProductID AND
    pv.VendorID = @vendor_id-- Variable value from the outer cursorOPEN product_cursor
    FETCH NEXT FROM product_cursor INTO @productIF @@FETCH_STATUS <> 0 
    PRINT '         <<None>>'     WHILE @@FETCH_STATUS = 0
    BEGINSELECT @message = '         ' + @product
    PRINT @message
    FETCH NEXT FROM product_cursor INTO @productENDCLOSE product_cursor
    DEALLOCATE product_cursor-- Get the next vendor.
    FETCH NEXT FROM vendor_cursor 
    INTO @vendor_id, @vendor_name
    END 
    CLOSE vendor_cursor
    DEALLOCATE vendor_cursor
      

  8.   

    是指在C#中如何调用,不是在SQL中操作
      

  9.   

    C#中指定不了SQL数据库的CURSOR类型吗??呵呵,,,那就算了