![](/img/trans.png)
[英]CS0029 C# Cannot implicitly convert type to 'int?' ASP.NET CORE 5 MVC Identity
[英]Getting error message: CS0029: Cannot implicitly convert (ASP.NET Core MVC & C#)
我在尝试定义 controller 函数时收到该错误消息(我使用的是 ASP.NET Core 5.0)。 我一直在尝试解决它一段时间,但没有成功,我几乎被卡住了。
看一看:
Controller 函数显示错误:
public ActionResult Edit(int id)
{
using (Approver approver = dbContext.GetApproverbyId(id))
{
return View(approver);
}
}
public ActionResult Index()
{
List<approver> approverList = dbContext.GetAllapprovers().ToList();
return View(approverList);
}
public ActionResult Details(int id)
{
approver approver = dbContext.GetApproverbyId(id);
return View(approver);
}
我的上下文功能:
public IEnumerable<approver> GetAllapprovers()
{
var approverList = new List<approver>();
using (SqlConnection con = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand("SP_GetAllApprovers", con)
{
CommandType = System.Data.CommandType.StoredProcedure
};
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
var approver = new approver
{
CODE = Convert.ToInt32(dr["CODE"].ToString()),
MAIL = dr["MAIL"].ToString()
};
approversList.Add(approver);
}
con.Close();
}
return approversList;
}
public approver GetApproverbyId(int? id)
{
var approver = new approver();
using (SqlConnection con = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand("SP_GetapproverById", con);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@CODE", id);
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
approver.CODE = Convert.ToInt32(dr["CODE"].ToString());
approver.MAIL = dr["MAIL"].ToString();
}
con.Close();
}
return approver;
}
我究竟做错了什么? 可以帮我解决这个问题吗? 我很迷茫
显示错误的行:
dbContext.GetApproverbyId(id))
dbContext.GetAllapprovers().ToList();
dbContext.GetApproverbyId(id);
我认为您的“connectionstring”.SQL 连接导致的问题未能选择您的“appsettings.json”文件的连接字符串。 因为你在这里发现了错误
dbContext.GetApproverbyId(id))
dbContext.GetAllapprovers().ToList();
dbContext.GetApproverbyId(id);
所以你必须正确选择你的连接字符串。
private IConfiguration Configuration;
public HomeController(IConfiguration _configuration)
{
Configuration = _configuration;
}
现在你必须改变你的上下文 function
public IEnumerable<approver> GetAllapprovers()
{
var approveresLista = new List<approver>();
string connectionString= Configuration.GetConnectionString("YOUR CONNECTION STRING NAME");
using (SqlConnection con = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand("SP_GetAllApprovers", con)
{
CommandType = System.Data.CommandType.StoredProcedure
};
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
var approver = new approver
{
CODE = Convert.ToInt32(dr["CODE"].ToString()),
MAIL = dr["MAIL"].ToString()
};
approversList.Add(approver);
}
con.Close();
}
return approversList;
}
使用与上述相同的其他上下文方法。 我认为它会起作用。如果您对上述代码有任何问题。 让我知道。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.