-2
ALTER FUNCTION [dbo].[FN.USER] (@USER_ID INT)  
RETURNS VARCHAR(300) AS  
BEGIN 

DECLARE @RESULT VARCHAR(300) = ''

Select  @RESULT =[USER_NAME] From USER
WHERE USER_ID=@USER_ID

RETURN @RESULT

我必须Username在我的组合框中显示。但是我也需要username_Id价值观。

如何为我的结果设置用户名并同时选择用户 ID 值?

任何帮助将不胜感激。

谢谢。

4

3 回答 3

1

尝试这个

CREATE FUNCTION [FN.USERNew]
(   
    @USER_ID INT 
)
RETURNS TABLE 
AS
RETURN 
(
    -- Add the SELECT statement with parameter references here
Select  [USER_NAME] , username_Id  From USER
WHERE USER_ID=@USER_ID
)
GO

然后您可以通过编写以下内容来选择 from 函数

SELECT * FROM [dbo].[FN.USERNew] (1)
于 2013-10-14T13:42:15.600 回答
0

这是一个标量函数而不是存储过程,您可以在这样的选择语句中使用它

SELECT Username(somevalue), ....

如果要编写存储过程,请尝试以下操作:

CREATE PROCEDURE GetUser
    @USER_ID int
AS
SELECT [USER_NAME], username_Id, whatever ...
FROM USER
WHERE USER_ID = @USER_ID

或者,您可以按照 Dhaval 的回答使用表函数。

如果您想要其他表中的数据,只需进行连接,例如

  CREATE PROCEDURE GetUser
        @USER_ID int
    AS
    SELECT [USER_NAME], username_Id, whatever ...
    FROM USER u
    INNER JOIN OtherTable ot ON ot.id = u.otid
    WHERE USER_ID = @USER_ID
于 2013-10-14T13:49:36.213 回答
0
ALTER FUNCTION [dbo].[FN.USER] (@USER_ID INT)  
BEGIN
Select  USER_NAME, USER_ID
From USER
Where USER_ID=@USER_ID
END

如果您想在组合框中同时包含这两个值,只需将 combobox.DisplayMember 设置为用户名描述,并将 combobox.ValueMember 设置为用户名 ID。

comboProject.DisplayMember = "USER_NAME";
comboProject.ValueMember = "USER_ID";
于 2013-10-14T14:10:01.963 回答