源起:做项目的时候遇到修改新闻的时候,点击修改进入到修改页面并且把数据库对应的标题,内容都显示在页面上。
最初的苯办法:写上几条sql语句一个值一个值的赋给对应的标题、内容。这样做的缺点太多了。
1.写太多SQL语句、在页面写对应的太多方法真的很不爽哦!很waste time哦!
2.页面和数据库交互太频繁了,每次都要从数据库中查询出来一个一个的赋值,当然性能就降低了!
SQL语句:SELECT (SELECT COUNT(id) FROM tb_comments WHERE blogId=@blogId) as t,title FROM tb_blogs WHERE id=@blogId
解决方案一:ArrayList接收值(不要忘记引入命名空间using System.Collections;)
1 页面方法: 2 ArrayList list = new ArrayList(); 3 list = bp.bottomComments(id); 4 if (list.Count == 0) 5 { 6 Response.Write("<script>alert('aa');</script>"); 7 } 8 else 9 { 10 string sumId = list[0].ToString(); 11 string title = list[1].ToString(); 12 lbl.Text = sumId + "条对" + title + "的评论!"; 13 } 14 bottomComments方法: 15 public ArrayList bottomComments(int id) 16 { 17 string sql = "proc_bottomComments"; 18 sp = new SqlParameter[1]; 19 sp[0] = new SqlParameter("@blogId", SqlDbType.Int); 20 sp[0].Value = id; 21 DataSet ds = base.getDataSet(sql, true, sp); 22 for (int i = 0; i < ds.Tables[0].Rows.Count; i++) 23 { 24 int sumId = Convert.ToInt32(ds.Tables[0].Rows[i][0]); 25 string title = ds.Tables[0].Rows[i][1].ToString(); 26 } 27 ArrayList list = new ArrayList(); 28 29 30 list.Add(sumId.ToString()); 31 list.Add(title); 32 return list; 33 }
解决方案二:泛型接收值
1 List<string> list = new List<string>();List<string> 2 DataSet ds = base.getDataSet(sql, true, sp); 3 for (int i = 0; i < ds.Tables[0].Rows.Count; i++) 4 { 5 int sumId = Convert.ToInt32(ds.Tables[i].Rows[0][0]); 6 string title = ds.Tables[0].Rows[i][1]; 7 } 8 9 list.Add(sumId.ToString()); 10 list.Add(title); 11 return list;
希望对大家有所帮助哦!
|
请发表评论