2016-05-09 9 views
2

Ich entwickle eine Funktionalität in meiner Web-App. Es ist eine Koch-Community. Die Funktionalität ist Online-Diskussion. Die Benutzer können unter einem Rezept kommentieren. Ich habe ein Listview-Steuerelement verwendet. Ich kann den Benutzernamen mithilfe einer verschachtelten Abfrage abrufen. Der DataSource-Eigenschaft des ListView-Steuerelements kann nur ein Datasetobjekt zugewiesen werden. Ich brauche sowohl den Benutzernamen als auch den Kommentarwert. Der Benutzername wird angezeigt. Ich habe ein Problem mit der Anzeige des Kommentars dieses bestimmten Benutzers. aber ich muss auch die Kommentare der Benutzer anzeigen. Wie erreiche ich Code hinter Kommentare anzuzeigen:Listenansicht- Benutzer Kommentare

public void dispComments() 
    { 
     MySqlConnection con = new MySqlConnection("Server=localhost;Database=FreedomKitchen;Uid=root;Password=;"); 
     con.Open(); 

     MySqlCommand cmd = new MySqlCommand("select Username from User_Details where User_ID in(select User_ID from Recipe_Comments)", con); 
     MySqlDataAdapter da = new MySqlDataAdapter(); 
     da.SelectCommand = cmd; 
     DataSet ds = new DataSet(); 
     da.Fill(ds, "User_Comments"); 
     ListView1.DataSource = ds; 
     ListView1.DataBind(); 
     con.Close(); 
    } 

Listenansicht Source Code:

   <ItemTemplate> 

       <div id="div123"> 
      <asp:Label ID="User" 
       runat="Server" 
       Text='<%#Eval("Username") %>' 
     width="850" 
     height="80" 
     /> 
    <%-- <asp:Label ID="Comment" 
       runat="Server" 
       Text='<%#Eval("Comment") %>' 
     width="850" 
     height="80" 
     />--%> 
       </div> 

</ItemTemplate> 
      <ItemSeparatorTemplate> 

       <br /> 
      </ItemSeparatorTemplate> 

     </asp:ListView> 

Datenbank: User_Details Tabelle

User_ID // müssen diese in einer Listenansicht angezeigt werden Artikel Vorname
Nachname
Alter
Geschlecht
Land
About_User
Benutzername
Passwort

User_Comments Tisch

Recipe_ID
User_ID
Kommentar // Notwendigkeit

Antwort

0

Ihre Datenbankabfrage verändern ein Listview-Element zur Anzeige zu join sowohl die Kommentare und Benutzer Tabelle und se lect das Ergebnis.

Deaktivieren Sie den Abschnitt in Artikelvorlage für Listenansicht, um den Kommentar ebenfalls anzuzeigen.

binden das Set ausgewählte Ergebnis

EDIT zur Listenansicht:

Sie können eine DateTime Spalte in Ihrer User_Comments Tabelle enthalten müssen, da es mehrere Kommentare von einem Benutzer sein kann, die auf die angezeigt werden müssen Zeit Reihenfolge.

Sie Ihren Code wie folgt, in dispComments() Methode

MySqlCommand cmd = new MySqlCommand("SELECT U.Username, R.Comment FROM Recipe_Comments R JOIN User_Details U ON R.User_ID = U. User_ID WHERE R.Recipe_ID = @RecipeID ORDER BY R.CommentDate DESC)", con); 
cmd.Parameters.Add("@RecipeID", SqlDbType.Int).Value = value; 

In Ihrem ItemTemplate

<ItemTemplate> 
<div id="div123"> 
    <asp:Label ID="User" runat="Server" Text='<%#Eval("Username") %>' width="850" height="80" /> 
    <asp:Label ID="Comment" runat="Server" Text='<%#Eval("Comment") %>' width="850" height="80" /> 
</div> 
</ItemTemplate> 
ändern
Verwandte Themen