如何在MVC控制器中调用存储过程?

时间:2012-10-15 07:28:53

标签: sql-server asp.net-mvc-3 stored-procedures

  

可能重复:
  ASP.NET MVC: Best Way To Call Stored Procedure

我正在开发MCV3应用程序。

我想在应用程序的一个控制器中调用存储过程。

我已经在我用于申请的数据库中保存了存储过程。

查询

Create Procedure ConvertLeadToCustomer1
@CompanyID int
as
begin 
update Companies set __Disc__ = 'Customer' where CompanyID = @CompanyID
end

现在,我想把这个过程称为控制器......

namespace CRMWeb.Controllers
{ 
    public class LeadController : Controller
    {
        private CRMWebContainer db = new CRMWebContainer();

        //
        // GET: /Lead/

        public ViewResult Index()
        {
            //return View(db.Companies.ToList());
            return View(db.Companies.OfType<Lead>().ToList());

        }

           public ActionResult Convert(int id)
        {

            // I want to write code here to call stored procedure...


        }
    }
}

怎么称呼它?

1 个答案:

答案 0 :(得分:3)

在mvc中没有什么不同,如果使用ADO.net,下面的代码调用存储过程:

public ActionResult Convert(int id)
{
    var connection = new SqlConnection("YOUR CONNECTION STRING");

    var command = new SqlCommand("ConvertLeadToCustomer1",connection)
    command.CommandType = CommandType.StoredProcedure;
    command.Parameters.AddWithValue("@CompanyID", id);

    connection.Open();

    command.ExcuteNonQuery();

    connection.Close();
}