Avatar billede strikerdk Novice
05. november 2008 - 20:34 Der er 2 kommentarer og
1 løsning

Vise HTML i ASP.NET Literal fra database

Hej Eksperter.

Jeg har rodet lidt med en editor-kontrol, og det er lykkes mig fint at kunne gemme ren HTML-kode igennem editoren og direkte i en access database.

I samme øjemed vil jeg selvfølgelig gerne hive HTML-koden ud fra databasen igennem en literal i asp.net, det går dog ikke specielt godt. Det skal selvfølgelig hives direkte ud gennem literallen så browseren selv fortolker HTMLén.

Jeg smider lige koden her, hvis der er nogen der kan se hvad jeg bør gøre/ændre eller rette. :-)

protected void Page_Load(object sender, EventArgs e)
    {
        string html = Literal1.Text;

        OleDbConnection MyConnection;
        OleDbCommand MyCommand;

        MyConnection = new OleDbConnection();

        MyConnection.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionDoomDB"].ConnectionString;

        string strSQL = System.Configuration.ConfigurationManager.AppSettings.Get("SQLhentHTML");

        MyCommand = new OleDbCommand(strSQL, MyConnection);
        try
        {
            MyConnection.Open();

            MyCommand.Parameters.Add("@strHTML", OleDbType.VarChar);

            MyCommand.Parameters["@strHTML"].Value = Literal1.Text;

            MyCommand.ExecuteNonQuery();

        }

        catch (Exception exept)
        {
            fejl.Text = Convert.ToString(exept);
        }
    }
Avatar billede strikerdk Novice
05. november 2008 - 22:34 #1
Burde måske lige skrive at jeg smider database connections i web.config.

<add key="SQLhentHTML"
        value="SELECT BrugerNavn FROM brugereDB WHERE Id = 1"/>
 
  </appSettings>
  <connectionStrings>
    <add name="ConnectionDoomDB" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|DataDirectory|DoomDB.mdb"
      providerName="System.Data.OleDb" />
  </connectionStrings>
Avatar billede strikerdk Novice
05. november 2008 - 23:06 #2
Fik løst problemet således:

OleDbConnection MyConnection;
        OleDbCommand MyCommand;
        MyConnection = new OleDbConnection();
        MyConnection.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionDoomDB"].ConnectionString;

        string strSQL = System.Configuration.ConfigurationManager.AppSettings.Get("SQLhentHTML");
        MyCommand = new OleDbCommand(strSQL, MyConnection);
        OleDbDataReader MyReader = null;
        try
        {
            MyConnection.Open();
            MyCommand.Parameters.Add(("@strHTML"), OleDbType.VarChar);

            MyCommand.Parameters["@strHTML"].Value = Literal1.Text;
            MyReader = MyCommand.ExecuteReader();
            while (MyReader.Read() == true)
            {
                //Angiver hvilke felter i databsen der hentes fra og hvortil de skrives


                Literal1.Text = Convert.ToString(MyReader["Tekst"]);
               
            }
            MyReader.Close();
            MyConnection.Close();
            MyCommand.Dispose();

        }
        //undtagelser behandles
        catch (Exception exept)
        {
            Literal1.Text = Convert.ToString(exept);
        }
Avatar billede arne_v Ekspert
06. november 2008 - 04:21 #3
Hvis du kun slaæ bruge en enkelt værdi, så er ExecuteScalar nemmere end ExecuteReader.

Og du kan caste fremfor at bruge Convert.
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