с помощью ASP.NET, C#, SQL Server 2008.SQL не возвращает значение, если нуль даже при присваивании
Сценарий: попыток пользователя войти в веб-приложение. Приложение проверяет имя пользователя против списка, чтобы получить UserID
. Если этот пользователь является известным пользователем, страница открывается нормально. Если пользователь не является известным пользователем, он ДОЛЖЕН открыт для публикации с уведомлением, чтобы связаться с администратором.
Мне не удалось написать хранимую процедуру SQL, чтобы она вернула значение 0 (или что-то еще в этом случае), чтобы его можно было использовать для запуска элементов управления. Я выполнил SQL как тест, и он работает; но он каждый раз ошибается на стороне asp.
Любая помощь очень ценится!
SQL Server код хранимой процедуры:
ALTER PROCEDURE [dbo].[spGetUserID]
-- Add the parameters for the stored procedure here
(@Username as varchar(64))
AS
BEGIN
SET NOCOUNT ON;
DECLARE @X INT
SET @X = (SELECT COUNT(*) FROM Users WHERE (Username = @Username))
If @X > 0
RETURN
(SELECT UID FROM Users WHERE (UserName = @Username))
ELSE
RETURN 99999 --IVE ALSO TRIED USING 0 HERE.
END
ASP.NET вызов хранимых процедур
public int GetUserID(string Username)
{
try
{
SQLCON = new SqlConnection(connectionString);
SQLCON.Open();
SQLCmd = new SqlCommand("spGetUserID", SQLCON);
SQLCmd.CommandType = CommandType.StoredProcedure;
SQLCmd.Parameters.Add("@username", SqlDbType.VarChar).Value = Username;
int userID = (Int32)SQLCmd.ExecuteScalar();
return userID; //THIS ALWAYS JUMPS TO EXCEPTION
}
catch
{
return 0;
}
finally
{
SQLCON.Close();
}
}
И ** ЧТО ** исключение вы получаете? Пожалуйста, предоставьте полное, полное и точное исключение (в том числе любое '.InnerException', которое у вас может быть) –
, из какого типа UID? – Guanxi
@Guanxi: Возвращаемое значение из хранимой процедуры всегда является «int» – Andomar