我有这样的代码在我的应用程序代码“IndexOutOfRangeException”错误。任何想法为什么?
using (SqlConnection oConn = new SqlConnection(ConfigurationManager.ConnectionStrings["data.user"].ToString()))
{
oConn.Open();
using (SqlCommand oCmd = new SqlCommand(strQuery, oConn))
{
oCmd.CommandType = CommandType.StoredProcedure;
oCmd.Parameters.Add(new SqlParameter("@J_ID", SqlDbType.NVarChar, 50));
oCmd.Parameters["@J_ID"].Value = JobID;
using (SqlDataReader drJobDetails = oCmd.ExecuteReader())
{
if (drJobDetails.Read())
{
Jobs oJob = new Jobs();
oJob.JobIDNumber = 1;
oJob.JobID = drJobDetails[drJobDetails.GetOrdinal("J_ID")] as string;
oJob.JobTitle = drJobDetails[drJobDetails.GetOrdinal("J_Title")] as string;
oJob.JobShortDescription = "";
oJob.JobDescription = drJobDetails[drJobDetails.GetOrdinal("J_Description")] as string;
oJob.JobLocation = drJobDetails[drJobDetails.GetOrdinal("BDS_Name")] as string;
oJob.JobHREmail = drJobDetails[drJobDetails.GetOrdinal("J_HREmail")] as string;
oJob.JobDateAdded = drJobDetails[drJobDetails.GetOrdinal("J_DateAdded")] as DateTime? ?? default(DateTime);
oJob.JobUserAdded = drJobDetails[drJobDetails.GetOrdinal("J_UserAdded")] as string;
oJob.JobCloseDate = drJobDetails[drJobDetails.GetOrdinal("BJ_ClosedDate")] as DateTime? ?? default(DateTime);
oJob.JobDateUpdated = drJobDetails[drJobDetails.GetOrdinal("J_DateUpdated")] as DateTime? ?? default(DateTime);
oJob.JobUserUpdated = drJobDetails[drJobDetails.GetOrdinal("J_UserUpdated")] as string;
oJob.JobActive = drJobDetails[drJobDetails.GetOrdinal("J_Active")] as int? ?? default(int);
oJob.JobVideo = drJobDetails[drJobDetails.GetOrdinal("J_Video")] as string;
return oJob;
}
}
}
}
而且我得到这个错误:
[IndexOutOfRangeException: J_Video]
如果我删除J_Video它工作正常,所以不知道可能是什么问题吧。 我对SQL和C#很陌生,所以任何提示为什么会出现这个错误会很好!
显然没有'什么存储过程返回 – Andrei
J_Video'列[IndexOutOfRangeException:指定的名称不是有效的列名(https://msdn.microsoft.com/en-us/library/system。 data.sqlclient.sqldatareader.getordinal(v = vs.110).aspx#Anchor_1) – sab669
我们可以看到'strQuery'的内容吗? – Jamiec