Reputation: 375
How do I store the results from my stored procedure to variables? Here is my sample code:
public ActionResult ManageProfile(string eid)
{
var vm = new ManageProfileViewModel(); // Call ViewModel
sp_GetUserDetails_Result gResult = db_RIRO.sp_GetUserDetails(Session["EID"].ToString()).First();
// Get UserId, FirstName, LastName from stored procedure result
gResult.UserId = vm.UserId;
gResult.FirstName = vm.FirstName;
gResult.LastName = vm.LastName;
return View(vm);
}
The stored procedure works fine when I manually try to execute it in Management Studio. The problem with my code is after executing it returns a null
.
Upvotes: 0
Views: 210
Reputation: 585
It is difficult to tell you without seeing the stored procedure. Make sure your stored procedure has output parameter.
For example, if you have a output variable "@userId" from stored procedure: something like in your code:
sqlcmd.Parameters.Add("@userId", SqlDbType.NVarChar, 4000).Value = "";
sqlcmd.Parameters["@userId"].Direction = ParameterDirection.Output;using
using (SqlConnection conn = new SqlConnection(dbConnStr))
{
sqlcmd.Connection = conn;
conn.Open();
sqlcmd.ExecuteNonQuery();
conn.Close();
if(sqlcmd.Parameters["@userId"].SqlValue.ToString() != "Null")
{
gResult.UserId = sqlcmd.Parameters["@userId"].SqlValue.ToString();
}
}
Hope this pseudo code helps you.
Upvotes: 0
Reputation: 375
Assigning of my variables should be the other way around.
vm.FirstName = gResult.SAPID
instead of
gResult.SAPID = vm.FirstName
.
Upvotes: 2