Avatar billede snailwalker Nybegynder
14. januar 2006 - 18:27 Der er 7 kommentarer og
1 løsning

Henter ikke ny tekst fra tekstfelt

Har en multiline textbox hvor jeg skal kunne skrive noget nyt data til en mssql database. Når siden åbnes bliver dataene skrevet i textboxen, men når jeg så klikker på opdater knappen tager den ikke mine rettelser med som jeg har lavet i textboxen.

<asp:TextBox ID="contentField" runat="server" Height="387px" TextMode="MultiLine" Width="750px" style="border:solid 1px #000000"></asp:TextBox><br />
<br />
<asp:Button ID="Button1" runat="server" CssClass="button" OnClick="Button1_Click" Text="Send" /><br />

Og her er min C# kode

protected void Button1_Click(object sender, EventArgs e)
{
    string newMenu = menuTitle.Text.Replace("'", "''");
    string newContent = contentField.Text.Replace("'", "''");
    string sql = "UPDATE my_table SET my_table.content = '"+newContent+"', titel = '"+newMenu+"' WHERE id = "+ pageId.ToString();
SqlCommand updateContent = new SqlCommand(sql, objConnection);
updateContent.ExecuteNonQuery();

}

Hvad er galt?
Avatar billede snepnet Nybegynder
14. januar 2006 - 18:33 #1
du skal kun trække værdien fra databasen og proppe den i teksboksen, hvis der ikke er tale om et postback.
mvh
Avatar billede snepnet Nybegynder
14. januar 2006 - 18:33 #2
if(!IsPostBack)
  LoadData():

i page_load

mvh
Avatar billede dr_chaos Nybegynder
14. januar 2006 - 18:35 #3
du kan også prøve med
asdf"]
protected void Button1_Click(object sender, EventArgs e)
{
    string newMenu = Request.Form["menuTitle"].Replace("'", "''");
    string newContent = Request.Form["contentField"].Replace("'", "''");
    string sql = "UPDATE my_table SET my_table.content = '"+newContent+"', titel = '"+newMenu+"' WHERE id = "+ pageId.ToString();
SqlCommand updateContent = new SqlCommand(sql, objConnection);
updateContent.ExecuteNonQuery();

}
Avatar billede dr_chaos Nybegynder
14. januar 2006 - 18:35 #4
men snepnets løsning er den mest korrekte.
Avatar billede snepnet Nybegynder
14. januar 2006 - 18:39 #5
du bør for øvrigt benytte parametre istedet for at lave replaces etc.
mvh
Avatar billede snepnet Nybegynder
14. januar 2006 - 19:00 #6
altså noget i denne stil:

protected void Button1_Click(object sender, EventArgs e)
{
    string sql = "UPDATE my_table SET my_table.content = @content, titel = @title WHERE id = @id";
    SqlCommand updateCommand = new SqlCommand(sql, connection);
   
    updateCommand.Parameters.Add("@content", SqlDbType.NVarChar);
    updateCommand.Parameters["@content"].Value = contentField.Text;

    updateCommand.Parameters.Add("@titel", SqlDbType.NVarChar);
    updateCommand.Parameters["@titel"].Value = contentField.Text;
   
    updateCommand.Parameters.Add("@id", SqlDbType.Int);
    updateCommand.Parameters["@id"].Value = pageId;       
   
    updateContent.ExecuteNonQuery();
}

mvh
Avatar billede snailwalker Nybegynder
14. januar 2006 - 20:00 #7
Så fik det til at virke nu :)

snepnet, smider du lige et svar. Og tusind tak for hjælpen til dig også dr. chaos!
Avatar billede snepnet Nybegynder
14. januar 2006 - 20:02 #8
et svar kommer her.
mvh
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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