当数据库中没有数据时填写下拉列表

时间:2014-01-22 14:26:16

标签: c# asp.net linq

我有一个下拉列表,其年龄范围为0-100。然后,用户可以选择并通过linq将所选值插入到数据库中。用户在数据库中没有年龄值,但这是他稍后将在编辑页面上添加的内容。问题是,如果数据库中没有年龄的NULL值,则在加载“编辑配置文件页面”时会出错。

错误讯息:

System.NullReferenceException: Object reference not set to an instance of an object. at DatingSite.Members.Redigera.getData(Guid user) in c:\DatingSite\DatingSite\Members\Redigera.aspx.cs:line 43

下拉列表代码:

public void addAge()
        {
        dropAge.Items.Insert(0, "Välj ålder");
        int index = 1;
        for (int i = 0; i <= 100; i++)
        {
            ListItem li = new ListItem(i.ToString(), i.ToString());
            dropAge.Items.Insert(index, li);
            index++;
        }
    }

获取用户信息的代码:

private void getData(Guid user)
    {
        var repository = new DAL.Repository.UpdateRepository();
        currentProfilbild.ImageUrl = "~/" + repository.getAvatar(user);
        Fnamn.Text = repository.getName(user);
        Enamn.Text = repository.getEnamn(user);
        tbxPresText.Text = repository.getPresText(user);
        var gender = repository.getGender(user);

        try
        {
            var age = repository.getAge(user).Trim();

            if (string.IsNullOrEmpty(age))
            {
                addAge();

            }
            else 
            {
                dropAge.SelectedValue = repository.getAge(user).Trim();
            }
        }
        catch (Exception ex)
        {
            lblError.Text = ex.ToString();
        }
    }

的LINQ代码:

public string getAge(Guid uID)
    {
        using (var context = new dbEntities())
        {
            var user = context.UserInformation.First(c => c.UserId == uID);
            return user.Ålder;
        }
    }

2 个答案:

答案 0 :(得分:0)

我的猜测是例外,因为年龄为null并且你正在尝试进行Trim操作。

var age = repository.getAge(user).Trim();

可能你可以做到这一点。

var age = repository.getAge(user);

if(!string.IsNullOrEmpty(age))
{
     age = age.Trim();
}
顺便说一句,您可能会考虑将所有数据都放在一个调用中,而不是多次调用firstname,lastname,age等。

答案 1 :(得分:0)

错误可能在这里:

public string getAge(Guid uID)
{
    using (var context = new dbEntities())
    {
        var user = context.UserInformation.First(c => c.UserId == uID);

        if(user != null && !String.IsNullOrEmpty(user.Ålder))
          return user.Ålder;
        else
          return string.empty;
    }
}