在上一篇博文中,犯了一个错误,SQL语句中应该加上条件,没加条件当然会把uid下的所有bid查询出来,我还异想天开的加top让只显示第一行。这个问题我是在首页不管点击哪个博文标题,都会显示第一个文章是发现的。
正确的SQL语句
select * from Blogs left join UserInfo on Blogs.uid=UserInfo.uid where bid=@bid
相应的 三层架构参数要改变
在我想明白这个问题后,修改时报错:必须声明表变量。
检查一番后发现问题
string sqlText = "select * from Blogs left join UserInfo on Blogs.uid=UserInfo.uid where bid=@bid "; string[] paras = { "@bid" }; object[] values = { b.Bid }; DataTable dt = new DataTable(); dt = DA.GetDataTable(sqlText, CommandType.Text, paras, values); return dt;
粗体字部分object类型我写成string 导致UI层需要转换类型,我还二了的呵的改来改去,bid我定义的时候是int类型
paras, values我写的为null
这两个错误都是因为我图省事,复制粘贴上边的代码导致的,应该仔细检查。