我有一個填充年齡範圍爲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