由网友(纸醉金迷)分享简介:我送ID作为输出参数,但它给错误System.Data.SqlClient.SqlException:在过程或函数usp_ClientHistoryItem'需要参数'@ID',这是不提供。code 使用(CMD的SqlCommand =新的SqlCommand(dbo.usp_ClientHistoryItem,康涅...
我送ID作为输出参数,但它给错误
System.Data.SqlClient.SqlException:在过程或函数 usp_ClientHistoryItem'需要参数'@ID',这是不 提供。
code
使用(CMD的SqlCommand =新的SqlCommand(dbo.usp_ClientHistoryItem,康涅狄格州))
{
SqlParameter的参数标识=新的SqlParameter(@ ID,oReservation.Id);
parameterID.Direction = ParameterDirection.Output;
cmd.Parameters.Add(参数标识);
cmd.Parameters.Add(新的SqlParameter(@ PHONENO,oReservation.ClientPhone));
cmd.Parameters.Add(新的SqlParameter(@用户ID,oReservation.UserID));
cmd.Parameters.Add(新的SqlParameter(@描述,oReservation.Description));
cmd.Parameters.Add(新的SqlParameter(@ TestId,oReservation.TestId));
cmd.Parameters.Add(新的SqlParameter(@起始日期,oReservation.StartDate));
cmd.ExecuteNonQuery();
的returnValue = Convert.ToInt32(cmd.Parameters [@ ID]值。);
返回的returnValue;
}
解决方案
您似乎在调用存储过程 - 但你从来没有的确定您的SqlCommand
是一个存储过程:
使用(CMD的SqlCommand =新的SqlCommand(dbo.usp_ClientHistoryItem,康涅狄格州))
{
cmd.CommandType = CommandType.StoredProcedure; //添加这行告诉ADO.NET这是一个存储过程!
如果您忘记了该行,那么ADO.NET将尝试跨preT你的东西作为一个特设的SQL语句......
I am sending ID as outparameter but its giving error
System.Data.SqlClient.SqlException: Procedure or function 'usp_ClientHistoryItem' expects parameter '@ID', which was not supplied.
Code
using (SqlCommand cmd = new SqlCommand("dbo.usp_ClientHistoryItem", conn))
{
SqlParameter parameterID = new SqlParameter("@ID", oReservation.Id);
parameterID.Direction = ParameterDirection.Output;
cmd.Parameters.Add(parameterID);
cmd.Parameters.Add(new SqlParameter("@PhoneNo", oReservation.ClientPhone));
cmd.Parameters.Add(new SqlParameter("@UserId", oReservation.UserID));
cmd.Parameters.Add(new SqlParameter("@Description", oReservation.Description));
cmd.Parameters.Add(new SqlParameter("@TestId", oReservation.TestId));
cmd.Parameters.Add(new SqlParameter("@StartDate", oReservation.StartDate));
cmd.ExecuteNonQuery();
returnValue = Convert.ToInt32(cmd.Parameters["@ID"].Value);
return returnValue;
}
解决方案
You seem to be calling a stored procedure - yet you've never defined your SqlCommand
to be a stored procedure:
using (SqlCommand cmd = new SqlCommand("dbo.usp_ClientHistoryItem", conn))
{
cmd.CommandType = CommandType.StoredProcedure; // add this line to tell ADO.NET it's a stored procedure!!
If you forget that line, then ADO.NET will try to interpret your stuff as an ad-hoc SQL statement....
相关推荐
最新文章