2012-07-02 199 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.` 
}