Linq如何像sqlDataReader那样读取1条数据出来,和页面Lable绑定?

来源:百度知道 编辑:UC知道 时间:2024/06/10 21:14:30
原来sql是这样读取某条记录,然后绑定页面上的label控件的。

SqlCommand show = new SqlCommand("SELECT * from 博客 where 编号=" + Request["id"], Conn);
qlDataReader odr = show.ExecuteReader();
if (odr.Read())
{
labelTopic.Text = odr["主题"].ToString();
labelMain.Text = odr["内容"].ToString();
}

现在到了Linq的年代。相同的Linq代码增写,能否给我一个完整的。让我学习一下。
能否加QQ群:67546878
讨论一下。

(from p in db.博客
where p.编号==int.Parse(Request["id"])
select p).SingleOrDefault<对象名>();

这种语法在对象最多只有一条记录的时候才能用,超过一条会抛出异常;
如果没有记录,则返回空值 null

SingleOrDefault 是泛型扩展方法,需要一个对象属性。通常用LINQ的时候,设计器会为你建立一个表的映射,就是那个表的映射,比如:

(from p in db.博客
where p.编号==int.Parse(Request["id"])
select p).SingleOrDefault<博客>();

---------------------------------------------------------

var userInfo = from a in db.博客 where a.编号 ==int.Parse(Request["id"]) select a;
try
{
var b = userInfo.ToArray()[0];
labelTopic.Text = b.主题;
labelMain.Text = b.内容;
labelDate.Text = b.日期.ToString();
labelEgg.Text = b.鸡蛋.ToString();
labelFlower.Text = b.鲜花.ToString();
}
catch
{
labelTopic.Text = "你访问的文章不存在";
}