"IndexOutOfRangeException"错误.有什么想法吗?

Mar*_*iaL -3 c# sql sql-server asp.net

我的应用程序代码中包含此代码

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;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

[IndexOutOfRangeException: J_Video]
Run Code Online (Sandbox Code Playgroud)

如果我删除J_Video它工作正常,所以不知道它可能是什么问题.我对SQL和C#都很陌生,所以任何关于为什么会出现这个错误的提示都会很棒!

Mar*_*der 7

这意味着DataReader没有列名J_Video.该专栏在这一行中提到:

oJob.JobVideo = drJobDetails[drJobDetails.GetOrdinal("J_Video")] as string;
Run Code Online (Sandbox Code Playgroud)

检查您的查询strQuery以查看是否已选中此列(SELECT J_Video, ... FROM ...)并确保拼写正确.