Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C++CLI / VB .Net / .Net-Framework » ASP.NET und "Text-Rendering"

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
21.03.2007, 19:37 Uhr
Eroli



Hallo zusammen,

ich habe eine ASP.NET Seite die einige Daten auf einem SQL-Server speichert.
Bei einigen Columns in einer Table auf dem Sql-Server werden dabei mehre Date durch '*' und '#' getrennt.
Wenn der User nun aber ein '*' oder '#' eingibt, würde damit dich Struktur zerstört werden und dazu führen, dass gar nix mehr klappt.

Deswegen brauche eine Methode die den Text "rendert":

1.Wenn der User nun zum Beispiel ein "*" schreibt, so muss das intern auf wat weiß ich, zum Beispiel ":SZ1:" umgewandelt werden und so gespeichert werden. bevor der Text nun ausgegeben wird, muss aus dem ":SZ1:" wieder ein "*" werden. Oder kann man das Problem irgendwie anders lösen?

2. Wie kann ich in XML "<" und ">" benutzen? Also benutzen gleich in Text eines Elemtes hinschreiben, ohne das die XML-Datei dadurch korrupt wird.

3. Wenn ich in einer TextBox auf meiner ASP.NET seite einen Absatz mache, so wird dieser in der SQL-Datenbank nicht mitgespeichert. Hierzu müsste man auch eine "Text-Rendering"-Methode schreiben, die das entsprechend umwandelt. Dazu müsste ich wissen wie eine leerzeile in einem String gespeichert wird. Steht im String dann einfach "\n" oder wird das anders festgehalten?


Ich danke für eure Hilfe,

Eroli
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
24.03.2007, 21:41 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
1. String.Split();
2. < = &lt; >=&gt; sollte funktionieren
3. Blob Feld benutzen
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
24.03.2007, 21:50 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


für 2. und 3. würde ich eine Art "htmlentities"-Funktion benutzen, die alle Zeichen deren ASCII-Wert < 32 bzw > 127 in seine entsprechenden entities umsetzt. Sowas sollte auch bei ASP.Net schon existieren. (also z.b \n in )
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
24.03.2007, 23:53 Uhr
Eroli




Zitat:
1. String.Split();

Also muss ich den wirklich jedes mal splitten, es gibt keine andere Alternative?


Zitat:
< = &lt; >=&gt; sollte funktionieren

Danke!


Zitat:
3. Blob Feld benutzen

Was bitte ist ein BLob-Feld???


Flosoft, das bedeutet dann ja doch einiges an Arbeit wenn ich die Funktion selber schreiben muss. Aber naja, wenns nicht anders geht, dann gehts halt nicht anders.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
25.03.2007, 18:33 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
Blob = Binary Large Objects. Diese Felder können binär eigentlich alles aufnehmen. (z.B Bilder oder andere komplett Dokumente)
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
25.03.2007, 18:42 Uhr
Eroli



Und wie soll ich diese Felder jetzt benutzen?
Wo liegt da der Unterschied zu einem Text-feld?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
25.03.2007, 22:21 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


kommt darauf an,

bei MySQL z.b ist BLOB rein binär, TEXT ein "Textdokument (also Multiline)", und VARCHAR/CHAR einfach nur eine Zeile.

speicher deine Daten halt einfach anders ab? Evtl kannste da dir nen haufen arbeit sparen.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
26.03.2007, 14:41 Uhr
Eroli



Ok, das mit dem Splitten hat sich glaube ich erledigt, da ich da etwas vermischt habe. Um Gebote zu speichern, verwende ich ein Textfeld indem die einzelnen Gebote durch * getrennt werden. Dort kann also auch kein User ein * schreiben und somit hat sich das Problem erledigt.


Zu den Absätzen:
Auf meiner ASPX-Seite habe ich eine TextBox die auf Multiline oder so steht und ca 5 Rows groß ist.
Macht man dort Absätze und speichert diese auf der SQL-Datenbank so erscheinen in den Felder der Datenbank anstatt der Absätze nur Vierecke, ich glaube es sind Quadrate.

Ruft man die ASPX-Seite nun auf so werden anstatt der Quadrate oder sogar der Absätze nur leerzeichen angezeigt. Zum Anzeigen auf der Seite wird ein Label (ASP.NET Label) benutzt.

Wohin sind nun die Absätze verschwunden?


Viele Grüße,
Eroli


PS: Zur zweiten Frage, die war eigentlich nur aus Interesse bzw für die Zukunft. Danke trotzdem für eure Antworten!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
27.03.2007, 07:48 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
gegeben sei ein Blobfeld in einer Tabelle als Spalte 1 (PK Spalte 0), ein Textfeld (Multiline) auf einer Form, zwei Button, ein Datenadapter und eine Verbindung (bei mir ist das DBMS Oracle).

C++:
private void button1_Click(object sender, System.EventArgs e)
        {
            // schreiben
            da.InsertCommand.Parameters[0].Value=1;
            da.InsertCommand.Parameters[1].Value=System.Text.Encoding.UTF8.GetBytes(txt.Text);
            conn.Open();
            da.InsertCommand.ExecuteNonQuery();
            conn.Close();
        }

        private void button2_Click(object sender, System.EventArgs e)
        {
            // lesen
            OracleDataReader dr;
            da.SelectCommand.Parameters[0].Value=1;
            conn.Open();
            dr = da.SelectCommand.ExecuteReader();
            dr.Read();
            txt.Text = System.Text.Encoding.UTF8.GetString((byte[])dr.GetValue(1));
            conn.Close();
        }

//  und jetzt als normales Varchar Feld

private void button3_Click(object sender, System.EventArgs e)
        {
            da.UpdateCommand = new OracleCommand();
            da.UpdateCommand.CommandText = "Update dummy Set TxT = :p0 where id =1";
            da.UpdateCommand.Parameters.Add(":p0", OracleType.VarChar);
            da.UpdateCommand.Parameters[0].Value = txt.Text;
            da.UpdateCommand.Connection=conn;
            conn.Open();
            da.UpdateCommand.ExecuteNonQuery();
            conn.Close();
        }

        private void button4_Click(object sender, System.EventArgs e)
        {
            OracleDataReader dr;
            da.SelectCommand.CommandText="Select TxT from dummy where ID =:p0";
            da.SelectCommand.Parameters.Clear();
            da.SelectCommand.Parameters.Add(":p0",OracleType.Number);
            da.SelectCommand.Parameters[0].Value=1;
            conn.Open();
            dr = da.SelectCommand.ExecuteReader();
            dr.Read();
            txt.Text = dr.GetOracleString(0).ToString();
            conn.Close();
        
        }


Möglich das der Inhalt des Blobfeld im Tabellendesigner nicht angezeigt werden kann.
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 27.03.2007 um 08:25 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
27.03.2007, 13:58 Uhr
Eroli



Ja Inhalt wird im Tabellendesigner nicht angezeigt, aber es klappt trotzdem nicht. Habe die Spalte jetzt auf "Binary(500)" umgestellt.

Schreiben
Code:
SqlCommand.Parameters.AddWithValue("@Description", System.Text.Encoding.UTF8.GetBytes(DescriptionTextBox.Text));
Session["auctionID"] = SqlCommand.ExecuteScalar();



Lesen:

Code:
DescriptionLabel.Text = System.Text.Encoding.UTF8.GetString((Byte[])DataReader.GetValue(3));



Außerdem erscheinen am Ende des Labels, wenn der Text zu Ende ist, nur noch ganz viele Fragezeichen.
Muss man bei Binary eigentlicha uch eine Länge angeben?


Eroli
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C++CLI / VB .Net / .Net-Framework ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: