当前位置:   article > 正文

[.net] ADO.net和sql 存储过程实例_"command.parameters.add(new sqlparameter(\"returnv

"command.parameters.add(new sqlparameter(\"returnvalue\", sqldbtype.int, 4, par"

验证用户是否存在

  1. public int ValidateLogin(string userName, byte[] Password)
  2. {
  3. int num;
  4. SqlParameter[] parameters = new SqlParameter[]
  5. {
  6. new SqlParameter("@UserName", SqlDbType.VarChar, 100),
  7. new SqlParameter("@EncryptedPassword", SqlDbType.Binary, 20)
  8. };
  9. parameters[0].Value = userName;
  10. parameters[1].Value = Password;
  11. return DbHelperSQL.RunProcedure("sp_ValidateLogin", parameters, out num);
  12. }


  1. public static int RunProcedure(string storedProcName, IDataParameter[] parameters, out int rowsAffected)
  2. {
  3. using (SqlConnection connection = new SqlConnection(connectionString))
  4. {
  5. connection.Open();
  6. SqlCommand command = BuildIntCommand(connection, storedProcName, parameters);
  7. rowsAffected = command.ExecuteNonQuery();
  8. int num = (int) command.Parameters["ReturnValue"].Value;
  9. connection.Close();
  10. return num;
  11. }
  12. }


  1. private static SqlCommand BuildIntCommand(SqlConnection connection, string storedProcName, IDataParameter[] parameters)
  2. {
  3. SqlCommand command = BuildQueryCommand(connection, storedProcName, parameters);
  4. command.Parameters.Add(new SqlParameter("ReturnValue", SqlDbType.Int, 4, ParameterDirection.ReturnValue, false, 0, 0, string.Empty, DataRowVersion.Default, null));
  5. return command;
  6. }

  1. private static SqlCommand BuildQueryCommand(SqlConnection connection, string storedProcName, IDataParameter[] parameters)
  2. {
  3. SqlCommand command = new SqlCommand(storedProcName, connection) {
  4. CommandType = CommandType.StoredProcedure
  5. };
  6. foreach (SqlParameter parameter in parameters)
  7. {
  8. if (parameter != null)
  9. {
  10. if (((parameter.Direction == ParameterDirection.InputOutput) || (parameter.Direction == ParameterDirection.Input)) && (parameter.Value == null))
  11. {
  12. parameter.Value = DBNull.Value;
  13. }
  14. command.Parameters.Add(parameter);
  15. }
  16. }
  17. return command;
  18. }

  1. 存储过程脚本
  2. CREATE PROCEDURE [dbo].[sp_ValidateLogin]
  3. @UserName VARCHAR(50) = NULL ,
  4. @Email VARCHAR(100) = NULL ,
  5. @EncryptedPassword BINARY(20)
  6. AS
  7. DECLARE @UserID INT
  8. IF @Email IS NULL
  9. BEGIN
  10. SELECT @UserID = UserID
  11. FROM Accounts_Users
  12. WHERE UserName = @UserName
  13. AND Password = @EncryptedPassword
  14. END
  15. ELSE
  16. BEGIN
  17. SELECT @UserID = UserID
  18. FROM Accounts_Users
  19. WHERE Email = @Email
  20. AND Password = @EncryptedPassword
  21. END
  22. IF @UserID = NULL
  23. RETURN -1
  24. ELSE
  25. RETURN @UserID
  26. GO



声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号