我有一个存储过程,它返回一个名称,所以我需要在 C# 中获取名称
所以我只是从 C# 执行 Sp 并使用ExecuteReader()
如下所示读取输出
using (var objCommand = new SqlCommand("SpName", objConnection))
{
objCommand.Parameters.AddWithValue("@Param1", Param);
objCommand.Parameters.AddWithValue("@Purpose", Purpose);
objConnection.Open();
objCommand.CommandType = CommandType.StoredProcedure;
using (var reader = objCommand.ExecuteReader())
{
while (reader.Read())
{
objemailsend.Name = Convert.ToString(reader["Name"]);
}
}
}
objConnection.Close();
它给出了一个例外
索引超出范围异常
我确信索引名称是相同的,我的意思是 Sp 也返回相同的名称
Name
----
name1
像上面一样
然后我尝试了类似下面的方法,现在异常消失了,它返回一个我不知道值来自哪里的数值,它与我的 SP 结果不一样
objexample.Name = reader[0].ToString();
也试过
using (var reader = objCommand.ExecuteReader())
{
if (reader.HasRows)
{
while (reader.Read())
{
objemailsend.Name = Convert.ToString(reader["Name"]);
}
}
}
但是同样的错误
你能帮我解决我的问题吗?