11. marts 2013 - 16:33
Der er
7 kommentarer og 1 løsning
få kommentar til at følge id?
Hejsa Jeg har en blog, som viser alle indlæg. Og hvis man trykker på læs mere for det indlæg kommer man ind på en ny side som hedder visBlognyhed.aspx her kan man så se selve indlægget og man kan se de kommentar der skulle være på det indlæg og man skal også kunne skrive en ny kommentar på indlægget. Hvordan får man oprettet en kommentar så det følger lige netop det indlægs id? Lige nu kommer den og siger at den ikke kan ligge indlægget fordi den ikke tillader at indsætte ingenting i databasen, så jeg kan ikke lige se hvordan jeg få den til at følge indlægs id? Håber nogle kan hjælpe mig Mvh, Tina
Annonceindlæg fra Infor
11. marts 2013 - 16:42
#1
det bliver lidt svært uden noget kode, men gætter på at du har en querystring sat på visBlognyhed.aspx og om du bruger for at udvælge hvad der skal vises - denne querystring vil du så også kunne bruge når du skal indsætte data.
11. marts 2013 - 17:56
#2
Min frontend kode: <div class="skriv_kommentar"><!--skriv_kommentar start --> <h2>Skriv en kommentar</h2> <br /> <table width:500px; border="1" class="tabel_kommentar"> <tr> <td><p>Navn:</p></td> <td class="auto-style1"> <asp:TextBox ID="TextBox_navn" runat="server" Width="231px"></asp:TextBox></td> </tr> <tr> <td><p>Dato:</p></td> <td class="auto-style1"> <asp:TextBox ID="TextBox_dato" runat="server" Width="231px"></asp:TextBox></td> </tr> <tr> <td><p>Kommentar:</p></td> <td class="auto-style1"> <asp:TextBox ID="TextBox_kommentar" runat="server" Height="163px" TextMode="MultiLine" Width="231px"></asp:TextBox></td> </tr> <tr> <td></td> <td class="auto-style1"></td> </tr> <tr> <td></td> <td class="auto-style1"> <asp:Button ID="Button_kommentar" runat="server" Text="Opret svar" class="green button" OnClick="Button_kommentar_Click" /></td> </tr> </table> </div><!--skriv_kommentar end --> Min codebehind: protected void Page_Load(object sender, EventArgs e) { if (Request.QueryString["kommentar_ID"] != null) { int q = Convert.ToInt32(Request.QueryString["kommentar_ID"]); hentProdukt(q); } } protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e) { Image img = e.Item.FindControl("imgBlog") as Image; if (img is Image) { img.Visible = (img.ImageUrl != ""); // will set image visible to false if ImageUrl is empty string } } protected void hentProdukt(int fk_indlaeg_ID) { SqlConnection conn = new SqlConnection(); conn.ConnectionString = ConfigurationManager.ConnectionStrings["DatabaseConnectionString1"].ToString(); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = @"SELECT * FROM kommentar INNER JOIN indlaeg ON kommentar.fk_indlaeg_ID = indlaeg_ID WHERE indlaeg_ID = @indlaeg_ID"; cmd.Parameters.Add("@indlaeg_ID", SqlDbType.Int).Value = fk_indlaeg_ID; conn.Open(); SqlDataReader Reader = cmd.ExecuteReader(); if (Reader.Read()) { TextBox_dato.Text = Reader["dato"].ToString(); TextBox_navn.Text = Reader["navn"].ToString(); TextBox_kommentar.Text = Reader["kommentar"].ToString(); } else { Response.Write("Nej Nej Nej!"); } conn.Close(); } protected void Button_kommentar_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(); conn.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString(); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = "INSERT INTO kommentar (dato, navn, kommentar) VALUES(@dato, @navn, @kommentar)"; cmd.Parameters.Add("@dato", SqlDbType.DateTime).Value = TextBox_dato.Text; cmd.Parameters.Add("@navn", SqlDbType.VarChar).Value = TextBox_navn.Text; cmd.Parameters.Add("@kommentar", SqlDbType.Text).Value = TextBox_kommentar.Text; conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); }
11. marts 2013 - 18:58
#3
indsæt værdien fra Request.QueryString["kommentar_ID"] i den passende kolonne i Button_kommentar_Click.
11. marts 2013 - 19:43
#4
Og hvordan gør jeg lige det? protected void Button_kommentar_Click(object sender, EventArgs e) { Request.QueryString["kommentar_ID"]; SqlConnection conn = new SqlConnection(); conn.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString(); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = "INSERT INTO kommentar (dato, navn, kommentar) VALUES(@dato, @navn, @kommentar)"; cmd.Parameters.Add("@dato", SqlDbType.DateTime).Value = TextBox_dato.Text; cmd.Parameters.Add("@navn", SqlDbType.VarChar).Value = TextBox_navn.Text; cmd.Parameters.Add("@kommentar", SqlDbType.Text).Value = TextBox_kommentar.Text; conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); }
12. marts 2013 - 09:22
#5
På præcis samme måde som resten af dine variabler er indsat cmd.CommandText = "INSERT INTO kommentar (kolonne, dato, navn, kommentar) VALUES(@dato, @navn, @kommentar)"; cmd.Parameters.Add("@dato", SqlDbType.INT).Value = Request.QueryString["kommentar_ID"]; Og så er det så lang tid siden jeg har skrevet manuel kode som ovenstående at jeg ikke ved om du skal typecaste querystringen, men du kan prøve med ovenstående først.
12. marts 2013 - 14:26
#6
Hej fik det til at virke, smid et svar Tak for hjælpen
12. marts 2013 - 16:30
#7
svar
Slettet bruger
03. juni 2016 - 23:28
#8
Fjernet
Dette indlæg er blevet modereret af en CoAdmin
Kurser inden for grundlæggende programmering