/// <summary>
/// 通过房客的姓名查询房客信息
/// </summary>
/// <returns>返回Ilist类型</returns>
public IList<Model.RoomerInfo> GetRoomerByName(Model.RoomerInfo roomer)
{
try

StringBuilder strSql = new StringBuilder();
strSql.Append("select Id,Roomer_Name,Roomer_Sex,Roomer_ID,Roomer_InRoom,Company,Social_Role,Mobilephone,Roomer_Age,Enregister_Time,Re from Roomer");
strSql.Append("where Roomer_Name=@Roomer_Name");
SqlParameter[] parameters ={
new SqlParameter("@Roomer_Name",SqlDbType.VarChar,20)};
parameters[0].Value = roomer.Roomer_Name;
DataTable dt = sqlHelper.Query(strSql.ToString(), parameters).Tables[0];
IList<Model.RoomerInfo> roomerList = new List<Model.RoomerInfo>();
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
Model.RoomerInfo roomer1 = new Model.RoomerInfo();
roomer1.Id = Convert.ToInt32(dt.Rows[i]["Id"]);
roomer1.Roomer_Name = dt.Rows[i]["Roomer_Name"].ToString();
roomer1.Roomer_Sex = dt.Rows[i]["Roomer_Sex"].ToString();
roomer1.Roomer_ID = dt.Rows[i]["Roomer_ID"].ToString();
roomer1.Roomer_InRoom = dt.Rows[i]["Roomer_InRoom"].ToString();
roomer1.Company = dt.Rows[i]["Company"].ToString();
roomer1.Social_Role = dt.Rows[i]["Social_Role"].ToString();
roomer1.Mobilephone = dt.Rows[i]["Mobilephone"].ToString();
roomer1.Roomer_Age = Convert.ToInt32(dt.Rows[i]["Roomer_Age"]);
roomer1.Enregister_Time = Convert.ToDateTime(dt.Rows[i]["Enregister_Time"]);
roomer1.Re = dt.Rows[i]["Re"].ToString();
roomerList.Add(roomer1);
}
return roomerList;
}
else
return null;
}
catch (Exception e)
{
throw new Exception(e.ToString());
}
}catch异常: System.IndexOutOfRangeException: 无法找到表 0。
在 System.Data.DataTableCollection.get_Item(Int32 index)
在 SQLServerDAL.RoomerDAL.GetRoomerByName(RoomerInfo roomer) 位置 D:\LinJie\NewEdition\SingleDormitory\SQLServerDAL\RoomerDAL.cs:行号 196

解决方案 »

  1.   

    鄙视蛋帖!!!!!!!!!!!!!!!在DataTable dt = sqlHelper.Query(strSql.ToString(), parameters).Tables[0]; 这个位置,检查你的SQL语句是否执行成功并检查是否成功的从库中查询到了数据
      

  2.   

    可能是没有获取到数据.
    DataTable dt = sqlHelper.Query(strSql.ToString(), parameters).Tables[0]; // 改成:DataTable dt;
    DataSet ds = sqlHelper.Query(strSql.ToString(), parameters);
    if (ds != null && ds.Tables.Count > 0) dt = ds.Table[0];
    else return null;