Avatar billede Slettet bruger
02. marts 2006 - 11:09 Der er 13 kommentarer og
1 løsning

Oprette et <br> i databasen

Jeg har søgt hele ekspertens igennem for at finde en løsning på hvordan jeg overfører et linieskift(Enter) fra et tekstfelt til databasen, dog ikke for programeringssproget c#! Har jeg forstået det ret, skal man indsætte en replacesætning, men liige hvordan dén udformes og hvor den skal placeres er jeg i tvivl om.

Jeg har forsøgtmig med noget ligende <%=Replace(rs("feltnavn")&"", vbCrLf, "<br>")%> men kunne ikke finde 'rs'

Jeg formoder at den skal placeres inden indholdet af tekstfeltet indsættes i databasen... således ser det ud!

void UpdateCommand(Object sender, System.Web.UI.WebControls.CommandEventArgs e) {
    OleDbConnection OurConnection;
    OleDbCommand OurCommand;
    OurConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("../database/info.mdb")+";");
    OurCommand = new OleDbCommand("UPDATE forside SET overskrift = @overskrift, tekst = @tekst", OurConnection);
    OurCommand.Parameters.Add("@overskrift", OleDbType.VarChar, 10).Value = tbOverskrift.Text;
    OurCommand.Parameters.Add("@tekst", OleDbType.VarChar, 20000).Value = tbTekst.Text;
    OurConnection.Open();
    OurCommand.ExecuteNonQuery();
    OurConnection.Close();
}
Avatar billede Slettet bruger
02. marts 2006 - 11:14 #1
Har også hørt en fugl synge om at man sætte en egenskab på sin tekstbox som gør at tryk på enter automatisk indsætter et linieskift.
I den engelske version hedder det noget i retning af 'enter key behavior'

Hvordan i så fald??
Avatar billede kalp Novice
02. marts 2006 - 11:18 #2
rs er et resultset...hvis dit resultset hedder noget andet skal du erstatte rs med det du kalder dit resultset
Avatar billede Slettet bruger
02. marts 2006 - 11:34 #3
resultset??? Déen er jeg ikk' lige helt med på... ;-/
Avatar billede kalp Novice
02. marts 2006 - 12:31 #4
Når du henter noget fra din database... i hvilket objekt gemmer du det så?
I asp som er det kode du har afprøvet er rs det objekt som man gemmer indholdet i.
Avatar billede Slettet bruger
02. marts 2006 - 12:35 #5
Ups! Dvs jeg har blandet asp og aspx! Så tror da f..... at skidtet ikke virker! Jeg henter indholdet fra databasen hva en Repeater kaldet TheRepeater!

void LoadData() {
    OleDbConnection OurConnection;
    OleDbCommand OurCommand;
    OleDbDataAdapter OurDataAdapter;
    DataSet OurDataSet = new DataSet();
    OurConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("database/info.mdb")+";");
    OurConnection.Open();
    OurCommand = new OleDbCommand("SELECT Overskrift, tekst FROM forside", OurConnection);
    OurDataAdapter = new OleDbDataAdapter(OurCommand);
    OurDataAdapter.Fill(OurDataSet, "forside");
    TheRepeater.DataSource=OurDataSet.Tables["forside"];
    DataBind();
}
Avatar billede kalp Novice
02. marts 2006 - 12:48 #6
hvis du vil udskrive tekst hvordan vil du så gøre det? se bort fra det med ny linje
Avatar billede Slettet bruger
02. marts 2006 - 12:51 #7
Vha ovenstående script og nedenstående sat ind i en form

<ASP:Repeater id="TheRepeater" runat="server">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "Overskrift") %>
<%# DataBinder.Eval(Container.DataItem, "Tekst") %>
</ItemTemplate>
</ASP:Repeater>
Avatar billede kalp Novice
02. marts 2006 - 13:11 #8
Avatar billede Slettet bruger
02. marts 2006 - 13:22 #9
Med al respekt for dem som hjælper de mindre vidende på dette forum, så går dette eksempel altså over min forstand! Hvordan kan dette lige hjælpe mig med linieskift i min tekst?? ~;)
Avatar billede kalp Novice
02. marts 2006 - 13:35 #10
kender ikke den der DataBinder.. derfor henviste jeg mere til fremgangsmåden.. men så må jeg forsøge mig frem.
forsøg denne

Replace(DataBinder.Eval(Container.DataItem, "Tekst"), "vbCrLf", "<br>")
Avatar billede Slettet bruger
02. marts 2006 - 13:41 #11
Tak for din overbærenhed ;-)| ang. scriptet så istedet for at hente i databasen udskrev den
"Replace(DataBinder.Eval(Container.DataItem, "Tekst"), "vbCrLf", "<br>")" ordret...
Avatar billede kalp Novice
02. marts 2006 - 14:10 #12
<% Replace(<%# DataBinder.Eval(Container.DataItem, "Tekst") %>,"vbCrLf","<br>") %>

eller er det nok lettere, at gemme Tekst i en variabel... køre replace på den og så udskrive den
Avatar billede Slettet bruger
02. marts 2006 - 14:14 #13
Prøvede at indsætte den og fik denne fejlmeddelse:
CS1040: Preprocessor-direktiver skal stå som første tegn (ud over mellemrum) på linjen
Avatar billede Slettet bruger
07. marts 2006 - 08:28 #14
Løste det selv vha et kammerater. Scriptet ser således ud:

<script runat="server">
void Page_Load(object src, EventArgs E){

    if(!IsPostBack){   
   
    {
        string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;";
        strConnection += @"Data Source=" + Server.MapPath("../database/info.mdb");
       
        string strSQL = "SELECT * FROM profil";
       
        OleDbConnection objConnection = new OleDbConnection(strConnection);
        OleDbCommand objCommand = new OleDbCommand(strSQL, objConnection);
        OleDbDataReader objDataReader = null;
       
        objConnection.Open();
        objDataReader = objCommand.ExecuteReader();
       
        string strTekstP = "";
        string strTekstBr = "";
        string strTekstH3 = "";
        string strTekstH4 = "";
        string strTekstST = "";
        string strTekstEM ="";
        string strTekstUl1 = "";
        string strTekstUl2 = "";
        string strTekstLi = "";
        string strTekstTag1 = "";
        string strTekstTag2 = "";
        string strTekst = "";
        string strTekstPling = "";
       
        while (objDataReader.Read() == true)
        {
            strTekstBr += objDataReader["tekst"];
            strTekstP = strTekstP.Replace("</p>", "[/p]" + Environment.NewLine);
            strTekstH3 = strTekstBr.Replace("</h3>", "[/h3]" + Environment.NewLine);
            strTekstH4 = strTekstH3.Replace("</h4>", "[/h4]" + Environment.NewLine);
            strTekstST = strTekstST.Replace("</strong>", "[/strong]" + Environment.NewLine);
            strTekstEM = strTekstST.Replace("</em>", "[/em]" + Environment.NewLine);
            strTekstUl1 = strTekstH4.Replace("</ul>", Environment.NewLine + "[/ul]" + Environment.NewLine);
            strTekstUl2 = strTekstUl1.Replace("<ul style='margin: 0px 0px 0px 25px; padding: 0px;'>", "[ul]" + Environment.NewLine);
            strTekstLi = strTekstUl2.Replace("</li>", "[/li]");
            strTekst = strTekstLi.Replace("<br />", Environment.NewLine);
            strTekstPling = strTekst.Replace("'", "''");
            strTekstTag1 = strTekstPling.Replace("<", "[");
            strTekstTag2 = strTekstTag1.Replace(">", "]");
        }

        objDataReader.Close();
        objConnection.Close();
       
        taTekst.Value = strTekstTag2;       
        }
    }
}

void gem(object src, EventArgs E)
{
    string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;";
    strConnection += @"Data Source=" + Server.MapPath("../database/info.mdb");
   
    OleDbConnection objConnection = new OleDbConnection(strConnection);
    objConnection.Open();
   
    string strTekst = taTekst.Value;
    string strTekstP = strTekst.Replace("[/p]" + Environment.NewLine, "</p>");
    string strTekstH3 = strTekst.Replace("[/h3]" + Environment.NewLine, "</h3>");
    string strTekstH4 = strTekstH3.Replace("[/h4]" + Environment.NewLine, "</h4>");
    string strTekstST = strTekst.Replace("[/strong]" + Environment.NewLine, "</strong>");
    string strTekstEM = strTekst.Replace("[/em]" + Environment.NewLine, "</em>");   
    string strTekstUl1 = strTekstH4.Replace(Environment.NewLine + "[/ul]" + Environment.NewLine, "</ul>");
    string strTekstUl2 = strTekstUl1.Replace("[ul]" + Environment.NewLine, "<ul style=''margin: 0px 0px 0px 25px; padding: 0px;''>");
    string strTekstLi = strTekstUl2.Replace("[/li]", "</li>");
    string strTekstTag1 = strTekstLi.Replace("[", "<");
    string strTekstTag2 = strTekstTag1.Replace("]", ">");
    string strTekstBr = strTekstTag2.Replace(Environment.NewLine, "<br />");
   
    string strSQL = "UPDATE profil SET tekst = '" + strTekstBr + "'";
   
    OleDbCommand objCommand = new OleDbCommand(strSQL, objConnection);
    objCommand.ExecuteNonQuery();
    objConnection.Close();
    lblGemt.Text +="Profilen er opdateret!";
}
</script>

Tak alligevel for hjælpen, det gav mig en idé om hvilken retning jeg skulle begive mig...
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