SqlCommand的输入输出参数

时间:2011-07-25 12:01:37

标签: c# .net asp.net sql-server ado.net

我有以下SqlCommand参数。如何进入和退出存储过程的参数值。

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

4 个答案:

答案 0 :(得分:14)

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;

答案 1 :(得分:6)

SqlParameter有一个Direction枚举。设置此值。

然后使用SqlCommand.Parameters.Add的{​​{1}}。

参数方向:

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

然后在调用SqlParameter之后将值拉出(例如),方法是从参数中取出ExecuteNonQuery

Value

不记得了,但我认为有一个字符串索引器。

或者,有一个班轮:

myCommand.Parameters["@paramName"].Value

答案 2 :(得分:2)

SQL命令参数的一个属性是Direction。你想要使用(内存不足)

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

答案 3 :(得分:0)

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