0

我有一个名为的存储过程Decryptpaswd,我想将该过程的结果分配给一个名为的变量query,以便我可以在 switch 语句中使用它。

我怎样才能做到这一点?

public void ValidateUser()
{
    SqlConnection conn = new SqlConnection(var3);

    String sql= "Decryptpaswd";
    SqlCommand cmd = new SqlCommand(sql, conn);
    cmd.CommandType = CommandType.StoredProcedure;
}

try
{
    conn.Open();

    **switch (query)**
    {
        case "AA": Response.Redirect("Home");
                   break;

        case "BB": Response.Redirect("Home1");
                   break;

        case "CC": Response.Redirect("Home2");
                   break;

        default: Response.Redirect("LogIn.aspx");
                 break;
    }
}

编辑:存储过程接受两件事,用户名和密码。如果输入的用户名和密码是正确的,则返回角色名。所以这个角色名在案例语句中使用。

CREATE PROCEDURE [dbo].[Decryptpaswd] 
    (
    @Username varchar(10),
    @Pasword varchar(256)
    )
    as

    SELECT 
     Rolename FROM Users
        WHERE Username = @Username AND DecryptByCert(----('---'),Pass, @Paswd)= @Pasword
     }
4

1 回答 1

3

听起来您的 SP 返回(选择)一个字符串,并且您想对结果做一些事情......如果是这样:

string role;
using(SqlConnection conn = new SqlConnection(var3))
using(SqlCommand cmd = new SqlCommand("Decryptpaswd", conn))
{
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Parameters.AddWithValue("Username", username);
    cmd.Parameters.AddWithValue("Pasword", password);
    conn.Open();
    query = (string)cmd.ExecuteScalar();
}
switch(role) {
   ...
}

您可能还想将一些参数添加到cmd.

于 2012-08-17T11:19:24.737 回答