Avatar billede tinaw25 Nybegynder
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
Avatar billede keysersoze Guru
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.
Avatar billede tinaw25 Nybegynder
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();

           
       
    }
Avatar billede keysersoze Guru
11. marts 2013 - 18:58 #3
indsæt værdien fra Request.QueryString["kommentar_ID"] i den passende kolonne i Button_kommentar_Click.
Avatar billede tinaw25 Nybegynder
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();

           
       
    }
Avatar billede keysersoze Guru
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.
Avatar billede tinaw25 Nybegynder
12. marts 2013 - 14:26 #6
Hej

fik det til at virke, smid et svar

Tak for hjælpen
Avatar billede keysersoze Guru
12. marts 2013 - 16:30 #7
svar
Avatar billede Slettet bruger
03. juni 2016 - 23:28 #8
Fjernet

Dette indlæg er blevet modereret af en CoAdmin

Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester