我是使用存储过程的新手。
我们有一个现有的系统,它使用检查用户名和 url 路径的存储过程。存储过程将检查用户详细信息是否存在。如果存在则返回 1,如果不存在则返回 0。
我正在尝试编写 asp.net 代码来调用此存储过程,方法是为其提供用户详细信息和路径,然后在 asp.net 中使用返回的 0 或 1 值。
我是使用存储过程的新手。
我们有一个现有的系统,它使用检查用户名和 url 路径的存储过程。存储过程将检查用户详细信息是否存在。如果存在则返回 1,如果不存在则返回 0。
我正在尝试编写 asp.net 代码来调用此存储过程,方法是为其提供用户详细信息和路径,然后在 asp.net 中使用返回的 0 或 1 值。
看起来您需要带有输出参数的存储过程
int errorId = 0;
using(SqlConnection sqlConnection = new SqlConnection(connectionString))
{
using(SqlCommand cmd = new SqlCommand("YourStoredProcedureName", sqlConnection))
{
cmd.CommandType=CommandType.StoredProcedure;
SqlParameter parm=new SqlParameter("@username", SqlDbType.VarChar);
parm.Value="mshiyam";
parm.Direction =ParameterDirection.Input ;
cmd.Parameters.Add(parm);
SqlParameter parm2=new SqlParameter("@path",SqlDbType.VarChar);
parm2.value = "Some Path";
parm2.Direction=ParameterDirection.Output;
cmd.Parameters.Add(parm2);
SqlParameter parm3 = new SqlParameter("@errorId",SqlDbType.Int);
parm3.Direction=ParameterDirection.Output;
cmd.Parameters.Add(parm3);
sqlConnection.Open();
sqlConnection.ExecuteNonQuery();
errorId = cmd.Parameters["@errorId"].Value; //This will 1 or 0
}
}
使用以下代码,
SqlCommand cmd = new SqlCommand("MyStoredProcedure", cn);
cmd.CommandType=CommandType.StoredProcedure;
SqlParameter parm=new SqlParameter("@username",SqlDbType.VarChar);
parm.Value=strUser;
parm.Direction =ParameterDirection.Input ;
cmd.Parameters.Add(parm);
parm=new SqlParameter("@url",SqlDbType.VarChar);
parm.Value=strUrl;
parm.Direction =ParameterDirection.Input ;
cmd.Parameters.Add(parm);
parm=new SqlParameter("@errorID",SqlDbType.Int);
parm.Direction=ParameterDirection.Output; // This is important!
cmd.Parameters.Add(parm);
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
// Print the output value
Console.WriteLine(cmd.Parameters["@errorID"].Value);
Console.ReadLine();
int errorId = 0;
SqlCommand cmd = new SqlCommand("YourSPName", cn);
cmd.CommandType=CommandType.StoredProcedure;
SqlParameter parm=new SqlParameter("@username",SqlDbType.VarChar);
parm.Value=strUser;
parm.Direction =ParameterDirection.Input ;
cmd.Parameters.Add(parm);
parm=new SqlParameter("@url",SqlDbType.VarChar);
parm.Value=strUrl;
parm.Direction =ParameterDirection.Input ;
cmd.Parameters.Add(parm);
parm=new SqlParameter("@errorID",SqlDbType.Int);
parm.Direction=ParameterDirection.Output; // This is important!
cmd.Parameters.Add(parm);
cn.Open();
errorId = (int)cmd.ExecuteNonQuery();
cn.Close();
sqlConnection.Open();
sqlConnection.ExecuteNonQuery();
放置条件:
if(errorId == 1)
{
`"Allow User here"`
}
if(errorId==0)
{
`Redirect when you to redirect to use.`
}