public static ConversionItem GetConversionItem(string oldEmployeeID)
        {
            ConversionItem conversionItem = new ConversionItem();
            string strConn = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=D:\\Emila\\HK Conversion File.xls;Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
            OleDbConnection objConn = new OleDbConnection(strConn);
            string sql = "select * from [sheet1$]";
            OleDbCommand objCmd = new OleDbCommand(sql, objConn);
            OleDbParameter para = new OleDbParameter("@oldEmployeeID", oldEmployeeID);
            objCmd.Parameters.Add(para);            objConn.Open();
            try
            {
                using (OleDbDataReader reader = objCmd.ExecuteReader())
                {
                    if (reader.Read())
                    {
                        conversionItem.EmployeeID = Convert.ToString(reader["EmployeeID"]);
                        conversionItem.EmployeeStatus = Convert.ToString(reader["EmployeeStatus"]);
                        conversionItem.Name = Convert.ToString(reader["Name"]);
                        conversionItem.Unit = Convert.ToString(reader["Unit"]);
                        conversionItem.DepartmentName = Convert.ToString(reader["DepartmentName"]);
                        conversionItem.OldEmployeeID = Convert.ToString(reader["OldEmployeeID"]);
                        conversionItem.Folder = Convert.ToString(reader["Folder"]);                        return conversionItem;
                    }
                    else
                    {
                        throw new PException("Old Employee ID {0} does not exist.", oldEmployeeID);
                    }
                }
            }
            finally
            {
                objConn.Close();
            }
        }错误出在  conversionItem.EmployeeID = Convert.ToString(reader["EmployeeID"]);哪位大哥帮忙解决一下阿

解决方案 »

  1.   

    报的什么错误?
    1:列名EmployeeID对不?
    2:reader["EmployeeID"]是否为null,如果是null,处理!
    3:conversionItem.EmployeeID是否为string类型?
      

  2.   


    是的  全中。conversionItem.EmployeeID是string类型。。
    怎么处理阿新手一枚 求大侠 帮助
      

  3.   

    你是说reader["EmployeeID"]为null是吧?
    两种情况:
    1:是否这个地方本来就没数据,如果是这样,可以用三元符处理
     Convert.ToString(reader["EmployeeID"]==null?"":reader["EmployeeID"]);
    2:如果有数据,那你还得仔细看看是否列名对。
      

  4.   


    我试了下 还是不行 还是报EmployeeID 排错提示是:确保列表中的最大索引小于列表的大小
                                                      确保索引不是负数
                                                     确保数据列名正确这些应该没错吧。。我SQL语句后加上      OleDbDataAdapter da = new OleDbDataAdapter(sql, objConn);
                      objConn.Open();
                      DataSet ds = new DataSet();
                      da.Fill(ds);
                      objConn.Close();及时调试窗口 可以查到  ds.Tables[0].Columns[1].ColumnName
    "Name"
      

  5.   

    从这个错误信息,很明显你的列名不对!
    你可以看看你ds中的所有列名,看看有没有 EmployeeID!
      

  6.   

    或者看看reader对象,看看列名到底是什么
      

  7.   

    ds.Tables[0].Columns[0].ColumnName
    "Employee ID"
    可以查看到列名阿