我想从我的数据库中获取一个值并将其设置为标签文本。
当我从下拉列表中选择某个内容时,它会传递一个我认为是type = 1
的值 protected void ddl_project_name_SelectedIndexChanged(object sender, EventArgs e)
{
int type = Convert.ToInt16(ddl_project_name.SelectedValue);
if (ddl_project_name.SelectedValue != "") //type =1
{
lbl_batch_status.Text = mydal.lbl_batch_status(type).ToString();
}
}
public string lbl_batch_status( int type)
{
var result = from p in db.tbl_projects
where p.id == type
select p.project_status;
return result.ToString();
}
但我只是得到了查询。为什么我没有得到结果值?
请帮帮我。感谢。
答案 0 :(得分:1)
我不确定我是否抓住了你的意思...... result
是枚举,然后ToString()
不会将其值加入有意义的字符串。将您的代码更改为:
public string lbl_batch_status( int type)
{
var result = from p in db.tbl_projects
where p.id == type
select p.project_status;
return String.Join(" ", result);
}
我假设project_status
的类型为string
,如果它没有改变:
public string lbl_batch_status( int type)
{
var result = from p in db.tbl_projects
where p.id == type && p.project_status != null
select p.project_status.ToString();
return String.Join(" ", result);
}
请注意我假设您需要一个按空格连接的列表(根据您的需要更改第一个String.Join
参数)。如果您确定列表中只有一个元素,请考虑使用First()
或Single()
。(参见MSDN)。
答案 1 :(得分:0)
您可以使用下面提到的方法:
public string lbl_batch_status( int type)
{
var result = db.tbl_projects
.Where(p => p.id == type)
.Select(p => p.project_status)
.FirstOrDefaulr();
return result == null ? string.Empty : result;
}