我是新的C#和我在SQL Server中的存儲過程:爲什麼從C#調用存儲過程時出現錯誤?
DECLARE @return_value int
EXEC @return_value = [dbo].[sp_getUserInfo]
@TelNo = N'2537743007'
SELECT 'Return Value' = @return_value
GO
,並嘗試調用此代碼:
using (SqlConnection con = new SqlConnection("Data Source=SERVICE;Initial Catalog=InvokeADSL;Integrated Security=True"))
{
using (SqlCommand cmd = new SqlCommand("sp_getUserInfo", con))
{
cmd.CommandType = CommandType.StoredProcedure;
//cmd.Parameters.Add("@FirstName", SqlDbType.VarChar).Value = txtFirstName.Text;
cmd.Parameters.Add("@TelNo", SqlDbType.NVarChar).Value = "253774300";
con.Open();
reader = cmd.ExecuteReader();
while (reader.Read())
{
Console.WriteLine(reader["return_value"].ToString());
}
}
}
,但我得到一個錯誤:
System.IndexOutOfRangeException: return_value
at System.Data.ProviderBase.FieldNameLookup.GetOrdinal(String fieldName) at System.Data.SqlClient.SqlDataReader.GetOrdinal(String name)
at System.Data.SqlClient.SqlDataReader.get_Item(String name)
at ConsoleApplication1.Program.Main(String[] args)
我該如何解決?謝謝。
這是SQL Server我的存儲過程:link to code
此異常意味着你試圖通過索引來訪問集合項目,使用無效索引。當索引低於集合的下限或大於或等於其包含的元素數量時,索引無效。 –
@KingReload如何處理收集? –
使用索引位置而不是名稱。閱讀器[0] .ToString() – Thangadurai