我有一个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()
答案 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()