2012-09-03 25 views
3

我有这个存储过程返回用户名:如何从ASPx页面向sqlserver发送ref int值?

​​

现在,当我使用C#调用它从数据访问层页面,我用这个函数:

MyDatabaseDataContext StudyAppdb = new MyDatabaseDataContext(); 

public int GetUserID(int TopicID) 
    { 
     int UserID = -1; 
     UserID = db.GetUserID(TopicID, UserID); 
     return UserID; 
    } 

但GetUserID应该采取(int,ref int)....我不知道什么是ref int &如何将它传递给函数。

+2

db是什么? – podiluska

+0

只需声明sql数据库即可访问其功能。 –

回答

2

等给出如下

CREATE FUNCTION dbo.GetUserID 
(
@TopicID int, 
    @AskerID int 
) 
RETURNS INT 
AS 
BEGIN 
SELECT  @AskerID = Post.Pt_CreatedBy 
WHERE  (Topic.Tp_ID = @TopicID) 
RETURN @AskerID 
END 

或输出参数发生变化的过程,则可以改为编写存储过程中的函数。然后,你必须改变数据访问层的代码,以捕获值..

4

由于GetUserID应该采取(int , ref int),调用此方法时,你也应该使用ref关键字explicily。相反,调用方法与db.GetUserID(TopicID, UserID)的,你应该使用ref关键词,是这样的:

public int GetUserID(int TopicID) 
{ 
    int UserID = -1; 
    UserID = db.GetUserID(TopicID, ref UserID); 
    return UserID; 
} 

你可以阅读更多关于ref keyword

相关问题