我一直在收到错误
代码行System.Data.SqlClient.SqlException:过程或函数'GetActiveComissions'需要参数'@param1',这是未提供的。
da.Fill(dt)
上的。当我尝试根据存储过程将数据绑定到GridView时,清楚地提供参数。
代码:
ApplicationDbContext context = new ApplicationDbContext();
var UserManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context));
string user = User.Identity.GetUserId();
string storedprocedure = "GetActiveComissions";
SqlConnection cn = GetSqlCon.GetCon();
DataTable dt = new DataTable();
SqlCommand cmd = new SqlCommand(storedprocedure, cn);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@param1", user);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
GridViewActiveComissions.DataSource = dt;
GridViewActiveComissions.DataBind();
我可以以错误的方式传递参数吗?
存储过程:
CREATE PROCEDURE [dbo].[GetActiveComissions]
@param1 nvarchar(128)
AS
SELECT
Comissions.CreationDate, Comissions.Accepted,
Comissions.BicycleModel, Comissions.BicycleType,
Comissions.YearOfAquisition, Comissions.Details,
AspNetUsers.WorkshopName
FROM
Comissions
INNER JOIN
AspNetUsers ON Comissions.WorkshopId = AspNetUsers.Id
AND Comissions.Accepted = 1
AND Comissions.ClientId = @param1
RETURN 0
我已经单独测试了存储过程,并且在提供参数的情况下它确实按预期工作。
答案 0 :(得分:2)
从参数名中删除'@',必须像这样
cmd.Parameters.AddWithValue("param1", user);