我已經做到了,但只是無法讓它工作,我只想在我的SP中做一個選擇,返回任何內容,然後在代碼隱藏中執行,然後使用返回的代碼執行任何操作。我如何獲得SP返回值?
的C#代碼
存儲過程使用
protected long getPassword(string EnteredPass)
{
var connectionString = ConfigurationManager.ConnectionStrings["GetConnector"].ConnectionString;
SqlConnection dbConnection = new SqlConnection();
dbConnection.ConnectionString = connectionString;
SqlCommand dbCommand = new SqlCommand("PL_User_Check", dbConnection);
dbCommand.CommandType = CommandType.StoredProcedure;
SqlParameter abc = dbCommand.Parameters.Add("@User", SqlDbType.VarChar);
abc.Value = EnteredPass;
dbCommand.Parameters.Add("@ReturnValue", SqlDbType.Int, 4).Direction = ParameterDirection.ReturnValue;
dbConnection.Open();
dbCommand.ExecuteNonQuery();
dbConnection.Close();
object x = dbCommand.Parameters[""].Value;
return Convert.ToInt64(x);
}
...
ALTER PROCEDURE [dbo].[PL_User_Check]
@User VARCHAR(50),
@ReturnValue BIGINT OUTPUT
AS
DECLARE @pass BIGINT
--Data
SET @Pass = (SELECT Pass
FROM dbo.UserPasswords
WHERE [User] = @User)
SET @ReturnValue = @Pass
你的SP看起來是過度設計之後。爲什麼不簡單地將其限制爲選擇查詢。然後它應該返回一個Datatable到.net,並且你可以在那裏提取這個值。 –