必须声明标量变量“@nInstID”
must declare the scalar variable "@nInstID"
我正在使用 ADO.NET 实体数据模型来访问我的 table 和存储过程。我将存储过程映射到我的 Room
table,因为它返回 sfloor 列。在Entity Framework,我获取楼层的请求方法是:
public List<Floor> GetFloorList(long instID,long userID,string userRole, long buildID, long deptID)
{
try
{
var floors = dbdata.Database.SqlQuery<Room>("GetUserFloorList @nInstID, @nUserID, @sUserRole, @nBuildID, @nDeptID", instID, userID, userRole, buildID, deptID);
List<Floor> floorList = new List<Floor>();
foreach (var fl in floors)
{
Floor floor = new Floor();
floor.floorName = fl.sFloor;
floorList.Add(floor);
}
return floorList;
}
catch(Exception)
{
throw;
}
}
因为我想列出所有属于相应参数的楼层名称。但是当我运行这个方法时,它给了我上面的错误。
根据某些解决方案,我需要提及每个变量的数据类型,但我不确定该怎么做。谁能告诉我该怎么做?
提前致谢。
您必须使用 new SqlParameter("@nInstID", instID)
并为所有参数执行此操作,而不是直接使用变量传递参数。
我正在使用 ADO.NET 实体数据模型来访问我的 table 和存储过程。我将存储过程映射到我的 Room
table,因为它返回 sfloor 列。在Entity Framework,我获取楼层的请求方法是:
public List<Floor> GetFloorList(long instID,long userID,string userRole, long buildID, long deptID)
{
try
{
var floors = dbdata.Database.SqlQuery<Room>("GetUserFloorList @nInstID, @nUserID, @sUserRole, @nBuildID, @nDeptID", instID, userID, userRole, buildID, deptID);
List<Floor> floorList = new List<Floor>();
foreach (var fl in floors)
{
Floor floor = new Floor();
floor.floorName = fl.sFloor;
floorList.Add(floor);
}
return floorList;
}
catch(Exception)
{
throw;
}
}
因为我想列出所有属于相应参数的楼层名称。但是当我运行这个方法时,它给了我上面的错误。
根据某些解决方案,我需要提及每个变量的数据类型,但我不确定该怎么做。谁能告诉我该怎么做?
提前致谢。
您必须使用 new SqlParameter("@nInstID", instID)
并为所有参数执行此操作,而不是直接使用变量传递参数。