c#使用CommandType.Text类型执行exec @return =FindID @ID,@findName output同时获取返回参数的值
时间: 2024-11-15 11:27:34 浏览: 1
C#获取存储过程返回值和输出参数值的方法
在 C# 中,`CommandType.Text` 是 `SqlCommand` 对象的一个属性,用于指定执行的 SQL 命令类型,通常是字符串形式的 T-SQL 语句。当你使用 `CommandType.Text` 并结合 `ExecuteScalar()` 或者 `ExecuteReader()` 方法执行一个返回单个值的查询(如存储过程),例如想要获取 `FindID` 存储过程的结果,你可以这样做:
```csharp
using (SqlConnection connection = new SqlConnection(connectionString))
{
string sqlText = "exec FindID @ID, @findName output @return";
SqlCommand command = new SqlCommand(sqlText, connection);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.AddWithValue("@ID", yourIdValue); // 设置输入参数
command.Parameters.AddWithValue("@findName", yourFindNameValue);
command.Parameters.Add(new SqlParameter("@return", SqlDbType.NVarChar)); // 添加返回结果的参数
if (command.Parameters["@return"].Direction == ParameterDirection.Output)
{
object result = command.ExecuteScalar(); // 如果你需要的是第一个结果
int returnVal = (int)result; // 转换为整数或其他类型,取决于存储过程的实际返回值
Console.WriteLine("Return value: " + returnVal);
}
else
{
// 执行其他操作,如果存储过程没有设置output参数
}
}
```
这里假设 `FindID` 存储过程有一个名为 `@return` 的output参数,你需要先检查这个参数是否为输出方向 (`Direction`)。
阅读全文