从数据库中检索数据并显示在detailsview中

本文关键字:显示 detailsview 数据 数据库 检索 | 更新日期: 2023-09-27 18:08:44

我想从数据库中检索当前登录的SharePoint用户的数据,并在detailsview的控件上显示它。但我真的不知道如何以最好的方式做到这一点。这是我尝试过的代码,但它显示null

    protected void Page_Load(object sender, EventArgs e)
    {
        if(!IsPostBack)
        {
            GetEmployeeCv();
        }
    }
    private void GetEmployeeCv()
    {
        using (var db = new KnowItCvdbEntities())
        {
            SPWeb theSite = SPControl.GetContextWeb(Context);
            SPUser theUser = theSite.CurrentUser;
            string strUserName = theUser.LoginName;
            var theEmpl =(from p in db.EMPLOYEES
                          where p.username == strUserName
                         select p).FirstOrDefault();
            if(theEmpl != null)
            {
                Image empImg = (Image)DetailsViewShowFullCv.FindControl("imageProfPic");
                empImg.ImageUrl = theEmpl.image;                    
            }
        }            
    }

如果我想绑定我的detailsview,如:

                Image empImg = (Image)DetailsViewShowFullCv.FindControl("imageProfPic");
                empImg.ImageUrl = theEmpl.image;                    
                DetailsViewShowFullCv.DataSource = ??;
                DetailsViewShowFullCv.DataBind();
我真的不知道该怎么做。有人能帮我吗?

从数据库中检索数据并显示在detailsview中

a)数据源应该是保存数据的变量。在本例中,它将是

b)通过调试器运行此命令以检查strUserName是否为您所期望的。LoginName字段通常返回域和用户名,如"domain ' username",所以如果你只将username部分存储在数据库中,而没有domain '

,则有可能返回null(默认为null)值。

c)对于Databinding,要么将您的LINQ查询更改为p.FieldNameToDatabind,要么知道如何在asp标记中编写databinind代码,以便您可以实际显示字段