Подтвердить что ты не робот

Параметр In-Out для SqlCommand

У меня есть следующий параметр для SqlCommand. Как сделать так, чтобы вставлять и изменять значение параметра для хранимой процедуры.

 SqlCommand mySqlCommand = new SqlCommand("aspInsertZipCode", mySqlConnection);
 mySqlCommand.CommandType = CommandType.StoredProcedure;
 mySqlCommand.Parameters.Add("@DataRows", dataStringToProcess.ToString());
4b9b3361

Ответ 1

var pInOut = mySqlCommand.Parameters.Add("@DataRows", dataStringToProcess.ToString());
pInOut.Direction = ParameterDirection.InputOutput;

И затем, чтобы прочитать выходное значение после выполнения команды:

// assumes that the parameter is a string and that it could possibly be null
string value = Convert.IsDBNull(pInOut.Value) ? null : (string)pInOut.Value;

Ответ 2

SqlParameter имеет перечисление Direction. Установите это значение.

Затем используйте SqlCommand.Parameters.Add, который принимает SqlParameter.

Направление параметра:

http://msdn.microsoft.com/en-us/library/system.data.parameterdirection.aspx

Затем вы можете вывести значение после вызова ExecuteNonQuery (например), получив Value из параметра вне коллекции команд:

myCommand.Parameters["@paramName"].Value

Не помню, но я думаю, что на нем есть индекс.

В качестве альтернативы существует один вкладыш:

myCommand.Parameters.AddWithValue("@paramName", value).Direction = ParameterDirection.InputOutput;

Ответ 3

Одним из атрибутов параметра SQL Command является Direction. Вы хотели бы использовать (уходит из памяти)

SqlCommand mySqlCommand = new SqlCommand("aspInsertZipCode", mySqlConnection);
mySqlCommand.CommandType = CommandType.StoredProcedure;
mySqlCommand.Parameters.Add("@DataRows", dataStringToProcess.ToString());
mySqlCommand.Parameters("@DataRows").Direction = ParameterDirection.InputOutput;

Ответ 4

SqlParameter DataRows = new SqlParameter("@DataRows", SqlDbType.Text) 
{ Value = dataStringToProcess.ToString(), Direction = ParameterDirection.InputOutput};
mySqlCommand.Parameters.Add(DataRows);