使用sqldatasource从2个sql server 2008表填充datalist

时间:2013-10-01 04:02:39

标签: .net sql-server-2008

我有一个Datalist,我正在使用左外连接作为“领导”表,我试图获得“位置”。但我收到错误,“DataBinding:'System.Data.DataRowView'不包含名为'Position'的属性。”

CustomerTable                                    LeadershipTable
CustomerId   Name,   LeadershipPosition       Id          Position
   1         Bob        1                      1          President
   2         Greg       2                      2          vice-President
   3         Polly      4                      3          Secratary
   4         Anna       3                      4          Treasurer

<asp:DataList ID="DataList1" RepeatColumns="2" DataKeyField="CustomerId" runat="server" DataSourceID="SqlDataSource2">

从代码隐藏填充的sqldatasource:

SqlDataSource2.SelectCommand = "SELECT Customer.CustomerId, Customer.FName + '   ' + Customer.LName As Name, Customer.Address1, Customer.City, Customer.State, Customer.Zip, Customer.Cell, Customer.Email, Customer.profilePic, Customer.LeadershipPosition From Customer LEFT OUTER JOIN Leadership ON Customer.LeadershipPosition = Leadership.Id WHERE Customer.CommitteeId = '1'"
    SqlDataSource2.DataBind()

1 个答案:

答案 0 :(得分:1)

您必须将“Leadership Table.Position”的别名指定为Position。检查以下代码

SqlDataSource2.SelectCommand = "SELECT Customer.CustomerId, Customer.FName + '   ' + Customer.LName As Name, Customer.Address1, Customer.City, Customer.State, Customer.Zip, Customer.Cell, Customer.Email, Customer.profilePic, Customer.LeadershipPosition, LeadershipTable.Position Position From Customer LEFT OUTER JOIN Leadership ON Customer.LeadershipPosition = Leadership.Id WHERE Customer.CommitteeId = '1'"
SqlDataSource2.DataBind()