2012-07-02 146 views
2

我是新来的存储过程的世界。存储过程输出参数asp.net c#

我们有现有的存储过程,它检查用户名和url路径的系统。存储过程将检查用户详细信息是否存在。如果存在返回值1,如果不是返回值0

我只需要为此存储过程编写asp.net c#代码。传递用户详细信息和路径,然后返回0或1。

如果返回值是1,允许用户如果0然后重定向到不同的页面

下面链接,SQL Server中执行存储过程

http://www.natboxservices.com/helmshore/img/pic.jpg

任何帮助赞赏

感谢

+6

这是一个不错的屏幕截图。 – CodeCaster

+3

你到目前为止尝试过什么吗? –

+0

你应该检查http://www.c-sharpcorner.com/UploadFile/rohatash/get-out-parameter-from-a-stored-procedure-in-Asp-Net/快乐编码! – Ravia

回答

6

看起来你需要存储的过程与输出参数

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 
    } 

} 
+1

很好,你把你的'SqlConnection'放到'using()....'块中 - 但你也应该为'SqlCommand'做同样的事情! –

+0

对不起@marc_s输入它太快....我现在更新帖子 – HatSoft

1

使用以下代码,

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(); 
0
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.` 
}