Asp.net 将返回的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

我想将LINQ2SQL查询的结果添加到标签或文本框中。 我使用“CustomerClass”类作为数据层。在这里,我有一个带有LINQ查询的方法。 此结果需要返回到代码隐藏文件并添加到标签或文本框中

课堂教学方法:

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();