2009-02-03 2 views
0

나는 특히 SignOffNameSignOffDate 필드를 포함하는 데이터베이스 테이블 TravelRequest을 보유하고 있습니다. 이 테이블을 기반으로 테이블 어댑터 TravelRequestTable이 있습니다. ObjectDataSource를 통해 이것을 사용하는 DetailsView 컨트롤이 있습니다. 모든 표준적인 것들이어야합니다.바인딩 할 수있는 표 어댑터에 속성을 추가하는 방법은 무엇입니까?

두 필드를 DetailsView 컨트롤에서 바인딩 할 수있는 테이블 어댑터에 SignOffNameDate이라는 속성을 추가하면됩니다. NULL 값을 다루는 것이 까다 롭고 다른 비즈니스 규칙에 의존하기 때문에 프로그래밍 방식으로 SQL에서 다른 열을 추가하고 싶습니다. 내가 프로그래밍 방식으로 액세스 할 때

public partial class TravelRequestDS 
{ 
    public partial class TravelRequestRow 
    { 
     public string SignOffNameDate 
     { 
      get { return CombineNameDate(SignOffName, SignOffDate); } 
     } 
    } 
} 

이 속성은 잘 작동하지만 내 aspx 페이지에 바인딩을하려고 할 때 :

내가 뭘하려

<asp:DetailsView ID="DetailsView_TravelRequest" runat="server" AutoGenerateRows="False" 
    DataKeyNames="TravelRequestID" DataSourceID="ObjectDataSource_TravelRequest"> 
     <Fields> 
      <asp:BoundField DataField="SignOffNameDate" 
       HeaderText="Sign Off" /> 
      ... 

나는 시스템을 얻을 .Web.HttpException 예외 "선택한 데이터 소스에서 'SignOffNameDate'이름의 필드 또는 속성을 찾을 수 없습니다."

어떻게하면됩니까? 속성에 추가해야하는 속성이 있습니까?

답변

0

설정에 액세스 할 수 있습니다 기본 쿼리를 수정하고, 널 (null)로 SignOffNameDate을 선택

Select [YourCol1],[YourCol2], SignOffNameDate as Null From [TravelRequest] 

처럼 뭔가에 TableAdapter에 쿼리를 선택 문을 변경입니다 하나의 편집 할 수없는 필드에서 결합 된 결과는 다음과 같이 할 수 있습니다 :

<asp:DetailsView ID="DetailsView_TravelRequest" runat="server" AutoGenerateRows="False" 
    DataKeyNames="TravelRequestID" DataSourceID="ObjectDataSource_TravelRequest"> 
     <Fields> 
      <asp:TemplateField HeaderText="Sign Off" SortExpression="SignOffDate">    
        <ItemTemplate> 
         <asp:Label ID="Label1" runat="server" Text='<%# Bind("SignOffName") %>'></asp:Label> 
         <asp:Label ID="Label2" runat="server" Text='<%# Bind("SignOffDate") %>'></asp:Label> 
        </ItemTemplate> 
      </asp:TemplateField> 
      ... 
0

테이블 구조를 변경하지 않으려는 경우 데이터를 어댑터로로드하는 기본 방법 (일반적으로 채우기)을 변경하십시오. 선택 * [TravelRequest]에서 수행하거나 개별 필드를 선택하는 것이 가장 가능성이 높습니다. 그래서 당신은 무엇을 할 수 있는지 당신이 당신의 목적을 표시하는 경우이 값을

+0

나는 당신의 대답을 완전히 이해하고 있는지 잘 모르겠습니다. SQL에 더미 SignOffNameDate 필드를 추가하면 테이블 어댑터가 해당 이름의 등록 정보를 생성 된 코드에 추가하고 "Type 'TravelRequestDS.TravelRequestRow'에 'SignOffNameDate'컴파일러 오류에 대한 정의가 이미 포함됩니다. – TallGuy

+0

속성을 재정의하기 위해 할 수있는 다른 방법이 있습니까? – TallGuy

+0

여전히 원래 게시물의 수업을 사용하고 있습니까? 더 이상 필요하지 않습니다. – kd7

관련 문제