“IndexOutOfRangeException"错误.知道为什么吗?
本文关键字:为什么 错误 IndexOutOfRangeException quot | 更新日期: 2023-09-27 18:16:53
我在我的应用程序代码中有这段代码
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#的新手,所以任何提示为什么会出现这个错误将是伟大的!
这意味着DataReader没有列名称J_Video
。这一行引用了该列:
oJob.JobVideo = drJobDetails[drJobDetails.GetOrdinal("J_Video")] as string;
检查您的查询strQuery
,看看这列是否被选中(SELECT J_Video, ... FROM ...
),并确保拼写正确。
检查以确保查询返回J_Video列。我认为查询没有返回它