2

リピーターを使用して、「SelectedUtility」テーブルを実行し、一致する場所を出力します。これはそのままで問題なく動作しますが、ユーティリティ テーブルの「id」への外部キーである「Utility_Id」が表示されます。

実際には、Utility テーブル内に「name」列を表示したいと考えています。どうすればこれを行うことができますか...何かのようなものですか、<th style="width:200px;"><%# Eval("Utility_Id.name") %></th>
それともコードビハインドで行われます...ご回答ありがとうございます

aspx:

 <asp:Repeater id="rptSelectedUtilities" runat="server">
                <HeaderTemplate>
                    <table class="detailstable FadeOutOnEdit">
                        <tr>   
                            <th style="width:200px;">Utility</th>    
                        </tr>
                </HeaderTemplate>
                <ItemTemplate>
                        <tr>
                            <th style="width:200px;"><%# Eval("Utility_Id") %></th> 
                        </tr>
                </ItemTemplate>
                <FooterTemplate>
                    </table>
                </FooterTemplate>
            </asp:Repeater>

コードビハインド:

DBData db = new DBDatat();
        List<Select_Utility> SelectedUtility = 
            (from SU in db.Select_Utilities
             where SU.Work_Id == 3
             select SU).ToList();

        rptSelectedUtilities.DataSource = SelectedUtility;

rptSelectedUtilities.DataBind();


編集:

   DBData db = new DBDatat();
    List<Utility_Company> Utility = new List<Utility_Company>();
    List<Select_Utility> SelectedUtility = 
        (from SU in db.Select_Utilities
         join UTL in Utility on SU equals UTL.id
         where SU.Worksite_Id == 3
         select SU).ToList();

    rptSelectedUtilities.DataSource = SelectedUtility;
    rptSelectedUtilities.DataBind();

「結合句のいずれかの式の型が正しくありません」というエラーをスローします。'join' の呼び出しで型の推定に失敗しました

//結合は名前にすべきではありません..そのため、SUのUtilityで結合UTLはUTL.Nameに等しい//UTL.idの代わりに

また、SU の db.Utility_Companies で UTL に参加しようとしましたが、UTL.id と同じです...同じエラーが発生しました


2 番目の編集: <%# Eval("Name") %> はエラーをスローします:DataBinding: 'Select_Utility' には 'Name' という名前のプロパティが含まれていません。

     DBData db = new DBData();

        List<Select_Utility> SelectedUtility = 
            (from SU in db.Select_Utilities
             where SU.Worksite_Id == 3
             select SU).ToList();

        rptSelectedUtilities.DataSource = SelectedUtility;
        rptSelectedUtilities.DataBind();


   List<Utility_Company> Utility = new List<Utility_Company>();
        var query = from u in db.Utility_Companies
                    join su in db.Select_Utilities
                         on u.id equals su.Utility_Id
                    where su.Worksite_Id == 3
                    select u;

        rptSelectedUtilities.DataSource = query.ToList();
        rptSelectedUtilities.DataBind();
4

2 に答える 2

1

クエリ (結合されたユーティリティを選択する必要があります):

DBData db = new DBDatat();
var query = from u in db.Utility
            join su in db.Select_Utilities
                 on u.Id equals su.Utility_Id
            where su.Work_Id == 3
            select u;

rptSelectedUtilities.DataSource = query.ToList();
rptSelectedUtilities.DataBind();

ページ (ユーティリティの表示名):

<th style="width:200px;"><%# Eval("Name") %></th>
于 2013-03-06T11:25:35.517 に答える
1

内部結合を使用して、外部テーブルを結合します。その id を選択します。

DBData db = new DBDatat();
        List<Select_Utility> SelectedUtility = 
            (from SU in db.Select_Utilities join UTL in Utility on SU equals UTL.Utility_Id
             where SU.Work_Id == 3
             select SU).ToList();
于 2013-03-06T11:31:02.083 に答える