Я работал с SqlDataAdapter
, который выполняет операцию вставки и должен отображать столбец идентификаторов в качестве выходного параметра в приложении.
Вот мой код
// created connection object
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = new SqlCommand("GetPersons",con);
da.SelectCommand.CommandType = CommandType.StoredProcedure;
da.InsertCommand = new SqlCommand("IPersons",con);
da.InsertCommand .CommandType = CommandType.StoredProcedure;
da.InsertCommand .Parameters.AddWithValue("@Name", txtname.Text);
// output param
SqlParameter param = new SqlParameter();
param.ParameterName = "@ID";
param.DbType = DbType.Int32;
param.Direction = ParameterDirection.Output;
da.InsertCommand.Parameters.Add(param);
DataSet ds = new DataSet();
da.Fill(ds);
string var = da.InsertCommand.Parameters["@ID"].Value.ToString();
..но в последней строке я не могу получить значение выходного параметра, он показывает нулевое значение
Это хранимая процедура:
Create Procedure [dbo].[IPersons]
@Name varchar(255) = null,
@ID int Out
AS
Begin
insert into Persons values(@Name)
select @ID = scope_Identity()
End
Что мне не хватает при удалении выходного параметра?
fill
не использует InsertCommand, он использует SelectCommand. - person Zohar Peled   schedule 26.04.2015ExecuteScalar
, если вы хотите получить какой-либо выходной параметр. - person Youssef Lourayad   schedule 26.04.2015