我的存储过程中有2个select语句,我使用sql reader读取我的数据,下面是我的代码,我希望阅读第2个表,任何想法怎么做?
public BOL.HomeAnnouncement get_total(string subs_cd, string timee)
{
oConnection.ConnectionString = ConnectionString;
oConnection.Open();
BOL.HomeAnnouncement t_list = new BOL.HomeAnnouncement();
SqlCommand oCommand = new SqlCommand();
oCommand.Connection = oConnection;
oCommand.CommandType = CommandType.StoredProcedure;
oCommand.CommandText = "TMS";
oCommand.Parameters.Add(new SqlParameter("@SUBS", subs_cd));
oCommand.Parameters.Add(new SqlParameter("@time_in", timee));
SqlDataReader oReader = oCommand.ExecuteReader();
while (oReader.Read())
{
t_list.Name = oReader.IsDBNull(oReader.GetOrdinal("Total_Employee")) ? "" : oReader["Total_Employee"].ToString();
t_list.status = oReader.IsDBNull(oReader.GetOrdinal("Total_Present")) ? "" : oReader["Total_Present"].ToString();
t_list.Title = oReader.IsDBNull(oReader.GetOrdinal("Total_Absent")) ? "" : oReader["Total_Absent"].ToString();
}
oReader.Close();
oConnection.Close();
return t_list;
}
t_list.Name = oReader.IsDBNull(oReader.GetOrdinal("Table2.Total_Employee")) ? "" : oReader["Table2.Total_Employee"].ToString();
t_list.status = oReader.IsDBNull(oReader.GetOrdinal("Table2.Total_Present")) ? "" : oReader["Table2.Total_Present"].ToString();
t_list.Title = oReader.IsDBNull(oReader.GetOrdinal("Table2.Total_Absent")) ? "" : oReader["Table2.Total_Absent"].ToString();
尝试了这个但没有工作.. table2.Total_Employee
修改
返回错误:
System.IndexOutOfRangeException: Table2.Total_Employee
答案 0 :(得分:0)
发生错误后:
错误原因:
当您作为参数传递的列不存在时,此异常已返回GetOrdinal
的方法SqlDataReader
。
如果你去here,你可以阅读MSDN说明。
<强>解决方案:强>
我认为您的存储过程输出是您要在SqlDataReader
中使用的不同方面。请发布存储过程代码以获取进一步的帮助