先给出这段代码的内容,如下:
public News SelectById(string id) { News n = new News(); DataTable dt = new DataTable(); string cmdText = "news_selectByCaId"; SqlParameter[] paras = new SqlParameter[]{ new SqlParameter("@caid",id) }; dt = sqlhelper.ExecuteQuery(cmdText, paras, CommandType.StoredProcedure); n.Id = id; n.Title = dt.Rows[0]["title"].ToString(); n.Content = dt.Rows[0]["content"].ToString(); n.CreateTime = dt.Rows[0]["createTime"].ToString(); n.CaId = dt.Rows[0]["caId"].ToString(); return n; }在在运行的时候,给我报出的错误如下图:
遇到问题不要慌,他给出的内容是在位置0处没有任何行,这说明当数值为0的时候,那个地方没有数据怎么办,是不是应该考虑给其增加一个数据或者将其直接跳过那一个数据呢?
我带着这个问题和心中所想的想法百度了一下,发现大部分都是给出,若报出这种错误,那么就跳过0行,跳过0行给出的方法是增加一个判断,所以在代码中增加判断,如下:
public News SelectById(string id) { News n = new News(); DataTable dt = new DataTable(); string cmdText = "news_selectByCaId"; SqlParameter[] paras = new SqlParameter[]{ new SqlParameter("@caid",id) }; dt = sqlhelper.ExecuteQuery(cmdText, paras, CommandType.StoredProcedure); n.Id = id; if (dt.Rows.Count > 0) { n.Title = dt.Rows[0]["title"].ToString(); n.Content = dt.Rows[0]["content"].ToString(); n.CreateTime = dt.Rows[0]["createTime"].ToString(); n.CaId = dt.Rows[0]["caId"].ToString(); } return n; }然后执行,此时可以成功的运行起来了,所以只需要增加一个判断就能解决。
每遇到一个问题,那都是成长的基石,需要不断的去解决和总结它,才能成为你进步的光辉大道。
