从数据库中检索数据并在详细信息视图中显示

时间:2013-04-12 11:33:31

标签: c# asp.net database sharepoint

我想从当前登录的SharePoint用户的数据库中检索数据,并在详细信息视图中的控件上显示它。但我真的不知道如何以最好的方式实现这一目标。这是我尝试过的代码,但它显示了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;                    
            }
        }            
    }

如果我想将我的详细信息视图数据绑定如下:

                Image empImg = (Image)DetailsViewShowFullCv.FindControl("imageProfPic");
                empImg.ImageUrl = theEmpl.image;                    

                DetailsViewShowFullCv.DataSource = ??;
                DetailsViewShowFullCv.DataBind();

我真的不知道怎么做。那里的任何人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

a)DataSource应该是保存数据的变量。在这种情况下,它将是theEmpl

b)通过调试器运行此命令以检查strUserName是否符合您的预期。 LoginName字段通常返回域名和用户名,如“DOMAIN \ UserName”,因此如果您只将UserName部分存储在没有Domain \

c)对于数据绑定,要么将LINQ查询更改为p.FieldNameToDatabind,要么知道如何在asp标记中编写Databind代码,以便实际显示该字段。