预期参数'@ID',未提供?我将ID作为输出参数发送,但出现错误System.Data.SqlClient.SqlException:过程或函数“usp_ClientHistoryItem”需要未提供的参数“@ID”。使用的代码parameterID.Direction=ParameterDirection.Output;cmd.Parameters.Add(parameterID);cmd.Parameters.Add(newSqlParameter("@PhoneNo",oReservation.ClientPhone));cmd.Parameters.Add(newSqlParameter("@UserId",oReservation.UserID));cmd.Parameters.Add(newSqlParameter("@Description",oReservation.Description));cmd.Parameters.Add(newSqlParameter("@TestId",oReservation.TestId));cmd.Parameters.Add(newSqlParameter("@StartDate",oReservation.StartDate));cmd.ExecuteNonQuery();returnValue=Convert.ToInt32(cmd.Parameters["@ID"].Value);返回返回值;您似乎在调用存储过程——但您从未将SqlCommand定义为存储过程://添加这一行告诉ADO.NET这是一个存储过程!!如果您忘记了那一行,那么ADO.NET将尝试将您的内容解释为临时SQL语句....存储过程中的ID参数必须设置为输出参数您只需在代码中设置它而不是在存储过程中。这可能有助于解决我的问题cmd.CommandType=CommandType.StoredProcedure;嗨,大家好。如果是这种情况,您必须将Command的属性CommandType设置为StoredProcedure。否则无法检测参数。引发此错误的另一个原因是存储过程和代码中的变量名称不匹配,因为代码找不到必须为其传递值的参数。确保它们匹配:存储过程:createproceduregetEmployee@IDasBeginselect*fromempwhereid=@IDEndCode:SqlParameterp=newSqlParameter("@ID",id);cmd.Parameter.Add(p);参数@ID必须在代码和存储过程中都匹配如果分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
