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"]);哪位大哥帮忙解决一下阿
{
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:列名EmployeeID对不?
2:reader["EmployeeID"]是否为null,如果是null,处理!
3:conversionItem.EmployeeID是否为string类型?
是的 全中。conversionItem.EmployeeID是string类型。。
怎么处理阿新手一枚 求大侠 帮助
两种情况:
1:是否这个地方本来就没数据,如果是这样,可以用三元符处理
Convert.ToString(reader["EmployeeID"]==null?"":reader["EmployeeID"]);
2:如果有数据,那你还得仔细看看是否列名对。
我试了下 还是不行 还是报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"
你可以看看你ds中的所有列名,看看有没有 EmployeeID!
"Employee ID"
可以查看到列名阿