【发布时间】:2017-07-13 16:42:27
【问题描述】:
我正在尝试从数据库第一个 MVC 实体框架项目调用 SQL Server 中的存储过程,但返回值始终返回 -1。
我尝试了许多不同的方法来解决这个问题,但到目前为止都没有成功。我在下面列出了我认为是我的相关代码的内容。让我知道是否需要更多代码。感谢任何可以提供帮助的人!
这只是我的测试代码,看看它是否正常工作。
public ActionResult Index()
{
Cust_Entities cse = new Cust_Entities();
if (cse.DoesCustomerNumberExist("1") == 1)
{
return RedirectToAction("Index", "Home");
}
else
{
return RedirectToAction("About", "Home");
}
}
public virtual int DoesCustomerNumberExist(string customer_Number)
{
var customer_NumberParameter = customer_Number != null ?
new ObjectParameter("Customer_Number", customer_Number) :
new ObjectParameter("Customer_Number", typeof(string));
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("DoesCustomerNumberExist", customer_NumberParameter);
}
SQL Server 存储过程代码:
ALTER PROCEDURE [dbo].[DoesCustomerNumberExist]
@Customer_Number VARCHAR(20)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @Exists INT
IF EXISTS(SELECT Customer_Number
FROM business_Final.dbo.AR_Customer
WHERE Customer_Number = @Customer_Number)
BEGIN
SET @Exists = '1'
END
ELSE
BEGIN
SET @Exists = '0'
END
RETURN @Exists
END
【问题讨论】:
-
旁注:由于
@Exists被声明为INT,您应该不使用单引号(因为您处理的是数字 值 - 不是字符串)设置值时 - 使用SET @Exists = 1- 没有单引号,没有从字符串到 int 的不必要转换等
标签: sql asp.net-mvc entity-framework