牛腩新闻发布--在位置 0 处没有任何行

xiaoxiao2021-02-28  28

发现问题

先给出这段代码的内容,如下:

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; }

然后执行,此时可以成功的运行起来了,所以只需要增加一个判断就能解决。

个人总结

每遇到一个问题,那都是成长的基石,需要不断的去解决和总结它,才能成为你进步的光辉大道。

转载请注明原文地址: https://www.6miu.com/read-2629448.html

最新回复(0)