0

asp.net プロジェクトと 2 つのテーブルがあります。

登録

RegisterID EventID UserID DateTime

ユーザー

ユーザーID ユーザー名

ここで、DateTime と Username が表示されたグリッドビューが必要です。

私は2時間からこれを試しましたが、これを表示する機会が1回もありません.

実行する方法?

今まで私はこれを持っています:

        public static List<EventRegistration> GetAllRegistrationsForEventID(Guid eventID)
    {
        using (CyberDBDataContext db = new CyberDBDataContext())
        {
            DataLoadOptions options = new DataLoadOptions();

            options.LoadWith<EventRegistration>(p => p.CyberUser);
            db.LoadOptions = options;

            List<EventRegistration> list = (from a in db.EventRegistrations where a.EventID == eventID select a).ToList();
            return list;
        }

この:

             <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetAllRegistrationsForEventID"
        TypeName="DAL.RegistrationHandler">
        <SelectParameters>
            <asp:QueryStringParameter DbType="Guid" DefaultValue="0000-000000-000000-0000" Name="eventID"
                QueryStringField="id" />
        </SelectParameters>
    </asp:ObjectDataSource>
    <asp:GridView  ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="ObjectDataSource1"
        EmptyDataText="Keine Spieler registriert" 
        onrowdatabound="GridView1_RowDataBound">
        <Columns>
            <asp:BoundField DataField="RegisterID" HeaderText="RegisterID" SortExpression="RegisterID"
                Visible="false" />
            <asp:BoundField DataField="EventID" HeaderText="EventID" SortExpression="EventID"
                Visible="false" />
            <asp:TemplateField HeaderText='Name' ItemStyle-HorizontalAlign='Center'>
                <ItemTemplate>
                    <asp:Label ID="lblName" runat="server" Text="Label"></asp:Label>
                </ItemTemplate>

            </asp:TemplateField>
            <asp:BoundField DataField="Timestamp" HeaderText="Anmeldezeit" SortExpression="Timestamp" />
            <asp:BoundField DataField="UserID" HeaderText="UserID" SortExpression="UserID"  />
        </Columns>
    </asp:GridView>

しかし、何も機能しません

4

1 に答える 1

0

select メソッドは、GetAllRegistrationsForEventIDEventRegistration のリストを返すメソッドです。

次のように、イベントとユーザー情報を一緒に投影する匿名オブジェクトを返します。最初にクラスがあります。

class AllInfo
{
    string RegisterID ;
    string EventID ;
    string UserID ;
    string DateTime;
    string Username;
}

それから

public static List<AllInfo> yourMethodName(Guid eventID)
{
    using (CyberDBDataContext db = new CyberDBDataContext())
    {
        DataLoadOptions options = new DataLoadOptions();

        options.LoadWith<EventRegistration>(p => p.CyberUser);
        db.LoadOptions = options;

        List<AllInfo> list = (from a in db.EventRegistrations 
                             where a.EventID == eventID 
                             select new AllInfo (){ RegisterID = a.RegisterID, 
                                                    EventID = a.EventID,
                                                    UserID = a.UserID,
                                                    UserName = a.User.UserName...}).ToList();
        return list;
    }

}

于 2012-12-07T15:49:46.260 に答える