Я создал хранимую процедуру для вставки значений в таблицу. Это хранимая процедура:Ошибка при передаче параметров хранимой процедуре
CREATE PROCEDURE [dbo].[insertproc]
@CollectionPersonName varchar(50),
@Address varchar(1500),
@ContactNo varchar(50),
@CreatedBy int,
@CreatedOn datetime
AS
BEGIN
SET NOCOUNT ON;
-- Insert statements for procedure here
insert into CollectionPersonDetails(CollectionPersonName, Address, ContactNo, CreatedBy, CreatedOn)
values(@CollectionPersonName, @Address, @ContactNo, @CreatedBy, @CreatedOn);
END
Ниже функция, которую я написал для передачи параметров и выполнения запроса в хранимой процедуре:
public static int SaveDataProcedure(tblCollectionPersonObj oSaveObj, int iUserId)
{
string query = "insertproc";
OdbcConnection conn = new OdbcConnection(Connect.ConnectionString());
OdbcCommand cmd = new OdbcCommand("insertproc",conn);
cmd.CommandText = query;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@CollectionPersonName", oSaveObj.SCollectionPersonName);
cmd.Parameters.AddWithValue("@Address", oSaveObj.SAddress);
cmd.Parameters.AddWithValue("@ContactNo", oSaveObj.SPhoneNo);
cmd.Parameters.AddWithValue("@CreatedBy", iUserId);
cmd.Parameters.AddWithValue("@CreatedOn", CommonData.GetDateForDatabase(DateTime.Now));
cmd.Connection.Open();
int i= cmd.ExecuteNonQuery();
cmd.Connection.Close();
return i;
}
Я получаю ошибку, которая говорит, что хранимая процедура ожидает параметр @collectionPersonName
, который не был поставлен. Я также попытался использовать функцию parameters.add
, но была показана та же ошибка.
Я могу видеть значения, возникающие, когда я отлаживаю код, но когда выполнение приходит к ExecuteNonQuery()
, это тот момент, когда я получаю ошибку. Ошибка может быть очень глупой, но я не смог ее найти.
Просьба помочь.
Что такое значение 'oSaveObj.SCollectionPersonName' при отладке его? –
@ SonerGönül, значение oSaveObj.SCollectionPersonName подходит как ожидалось. Нет проблем с этим. – TVicky
Вы должны проверить [Может ли мы перестать использовать AddWithValue() уже?] (Http://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-already/) и перестать использовать '.AddWithValue()' - это может привести к неожиданным и неожиданным результатам ... –