Asp.net 将返回的LINQ结果添加到标签/文本框
我想将LINQ2SQL查询的结果添加到标签或文本框中。 我使用“CustomerClass”类作为数据层。在这里,我有一个带有LINQ查询的方法。 此结果需要返回到代码隐藏文件并添加到标签或文本框中 课堂教学方法:Asp.net 将返回的LINQ结果添加到标签/文本框,asp.net,linq-to-sql,label,return,code-behind,Asp.net,Linq To Sql,Label,Return,Code Behind,我想将LINQ2SQL查询的结果添加到标签或文本框中。 我使用“CustomerClass”类作为数据层。在这里,我有一个带有LINQ查询的方法。 此结果需要返回到代码隐藏文件并添加到标签或文本框中 课堂教学方法: public static object SelectCustomerByUser(string user) { var query = (from p in dc.Customers where p.No_ == user
public static object SelectCustomerByUser(string user)
{
var query = (from p in dc.Customers
where p.No_ == user
select p).Single();
return query;
}
代码隐藏文件:
protected void Page_Load(object sender, EventArgs e)
{
string user = Membership.GetUser().UserName.ToString().ToUpper();
var queryresult = CustomerClass.SelectCustomerByUser(user);
lblStreet.Text = ?????????
}
当我将LINQ查询直接设置到代码隐藏文件中时,我可以直接分配lblStreet.Text,如:
lblStreet.Text=queryresult.Street
,但我希望将LINQ查询与代码隐藏文件分开。该方法选择CustomerByser
返回一个客户类型的装箱对象,因此需要unbox
(键入cast)并将属性/字段值分配给用户界面
比如:
var queryresult = CustomerClass.SelectCustomerByUser(user) as Customer;
if(queryresult!=null)
lblStreet.Text= queryresult.Street;
如果更改selectCustomerByser
的返回类型,并使用first或default
而不是Single
方法,效果会更好
public static Customer SelectCustomerByUser(string user)
{
var query = (from p in dc.Customers
where p.No_ == user
select p).Single();
return query;
}
因此,linq似乎从dc.Customers返回类型为
CustomerClass
的对象。您可以创建一个函数(类似于string GetCustomerStreet(){…}
),以便对标签进行处理:
lblStreet.Text = ((CustomerClass)queryresult).GetCustomerStreet();
代码隐藏
protected void Page_Load(object sender, EventArgs e)
{
string user = Membership.GetUser().UserName.ToString().ToUpper();
var queryresult = CustomerClass.SelectCustomerByUser(user);
lblStreet.Text = queryresult!=null?queryresult.Street:"";
}
或
代码隐藏
protected void Page_Load(object sender, EventArgs e)
{
string user = Membership.GetUser().UserName.ToString().ToUpper();
var queryresult = CustomerClass.SelectCustomerByUser(user);
lblStreet.Text = queryresult!=null?queryresult.Street:"";
}
我会让函数返回一个Customer,而不是一个如下所示的对象:
public static Customer SelectCustomerByUser(string user)
这是一个Customer类,该操作称为selectCustomerByser
,它会提示返回一个客户,这将使您能够访问街道上的客户成员
你可以考虑在这个特殊情况下使用。
< P>假设var queryresult = CustomerClass.SelectCustomerByUser(user);
返回Customer的实例,您可以将其强制转换为该实例,然后将属性连接到字符串中,或使用StringBuilder,如以下所示:
Customer c = (Customer)queryresult);
textbox.Text = String.Format("{0} email = {1}",customer.name , customer.email);
顺便说一句,在查询中我会这样做
select p).SingleOrDefault();
然后在执行强制转换之前测试结果是否为null。SelectCustomerByUser(用户)已经返回Customer对象,因此无需再次键入强制转换。请查看OP-
公共静态对象SelectCustomerByUser(字符串用户)
中方法的返回类型已经查看过,其公共静态客户SelectCustomerByUser(字符串用户)不是公共静态对象SelectCustomerByUser(字符串用户)。请检查您的解决方案(亲爱的:),而且您还没有检查空值。
Customer c = (Customer)queryresult);
textbox.Text = String.Format("{0} email = {1}",customer.name , customer.email);
select p).SingleOrDefault();