2016-04-02 8 views
0

Ich möchte auf Knopfdruck Kommentare aus meiner Datenbank in das Update-Fenster einfügen. das ist meine aspx Seite-Ich kann mein Update-Panel nicht mit Kommentaren auf Knopfdruck füllen.

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default12.aspx.cs" Inherits="Default12" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:ScriptManager ID="ScriptManager1" runat="server"> 
     </asp:ScriptManager> 
     <asp:Button ID="Button" runat="server" Text="Button" onclick="Button_Click" /> 
     <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
     <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="Button" EventName = "Click"/> 
     </Triggers> 
     <ContentTemplate> 
      <asp:PlaceHolder ID="CommentPlaceHolder" runat="server"></asp:PlaceHolder> 
     </ContentTemplate> 
     </asp:UpdatePanel> 
    </div> 
    </form> 
</body> 
</html> 

dies mein cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data.SqlClient; 
using System.Data; 
using System.Data.SqlClient; 
using System.Data; 

public partial class Default12 : System.Web.UI.Page 
{ 
    SqlConnection con; 
    SqlCommand cmd; 
    SqlDataReader dr; 
    string str; 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     str = @"Data source=INSPIRATION\SQLEXPRESS; Initial Catalog=ComputerPedia; Integrated security= true"; 
     con = new SqlConnection(str); 
     if (con.State == ConnectionState.Closed) 
      con.Open(); 
     cmd = new SqlCommand("Select Comment from CommentTable", con); 
     dr = cmd.ExecuteReader(); 
    } 
    protected void Button_Click(object sender, EventArgs e) 
    { 
      dr.Read(); 
      Response.Write(dr[0].ToString()); 
      Label l = new Label(); 
      l.ID = "l1"; 
      l.Text = dr[0].ToString(); 
      CommentPlaceHolder.Controls.Add(l); 
      UpdatePanel1.Update(); 
    } 
} 
Seite- ist

aber das funktioniert nicht. Es gibt kein Problem mit der Verbindung, weil der Verbindungscode von einer funktionierenden Webseite ausging und die Abfrage auch in sql funktioniert. Bitte hilf mir dabei. Vielen Dank!

Antwort

0

Verwenden Sie den geänderten Code, um den Vorgang abzuschließen. Ich habe den geänderten Abschnitt kommentiert und entsprechende Erläuterungen dafür geschrieben.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:ScriptManager ID="ScriptManager1" runat="server"> 
     </asp:ScriptManager> 

     <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
     <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="Button"/> //modified 
     </Triggers> 
     <ContentTemplate> 
      <asp:Button ID="Button" runat="server" Text="Button" onclick="Button_Click" /> // modified 
      <asp:PlaceHolder ID="CommentPlaceHolder" runat="server"></asp:PlaceHolder> 
     </ContentTemplate> 
     </asp:UpdatePanel> 
    </div> 
    </form> 
</body> 
</html> 

Dieser Ihre aspx Code

kommt Ihre .cs Code

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data.SqlClient; 
using System.Data; 
using System.Data.SqlClient; 
using System.Data; 

public partial class Default12 : System.Web.UI.Page 
{ 
    SqlConnection con; 
    SqlCommand cmd; 
    SqlDataReader dr; 
    string str; 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     str = @"Data source=INSPIRATION\SQLEXPRESS; Initial Catalog=ComputerPedia; Integrated security= true"; 
     con = new SqlConnection(str); 
     if (con.State == ConnectionState.Closed) 
      con.Open(); 
     cmd = new SqlCommand("Select Comment from CommentTable", con); 
     dr = cmd.ExecuteReader(); 
    } 
    protected void Button_Click(object sender, EventArgs e) 
    { 

if (reader.HasRows) // to check whether there are comments or not in your database 
{ 
     int commentIndexForLabel = 1; 
    while (reader.Read()) 
    {  
     // Response.Write(dr[0].ToString()); 
      Label l = new Label(); 
      l.ID = "l" + commentIndexForLabel.ToString() ; //modified 
      l.Text = (string)dr["Comment"]; //modified 

      CommentPlaceHolder.Controls.Add(l); 
      commentIndexForLabel ++; 
      //UpdatePanel1.Update(); This is not required 
    } 
} 
else 
{ 
    // do whatever you want to do if there are no comments 
} 




    } 
} 

Verwenden Sie diesen Code und teilen Sie Ihre Ausgabe hier war. Ich hoffe, dass die Dinge gut funktionieren werden