我有一个填充年龄范围为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;
}
}
谢谢你,这似乎解决了这个问题。 :) – asdfg