Hallo,
wieder einmal benötige ich Hilfe. Nachdem ich nach langer Suche im Internet schon vieles ausprobiert habe, jedoch alles vergeblich war, wende ich mich nun an euch.
Ich erstelle momentan ein Intranet mit ASP.NET und will auf der Startseite die News generieren.
Dies mache ich mit einer Tabelle, welche die Datensätze aus der Datenbank "abklappert".
Soweit klappt auch alles, das Datum, der Tilte, der Text und das Fotokommentar werden richtig angezeigt, nur das richtige Format des Bildes bekomme ich nicht hin und anschließend das Einfügen in die variable Tabelle.
Der Code dazu sieht wie folgt aus:
Erst einmal eine Methode die im Hauptcode genutzt wird:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39:
| public void fillNewsList() { String text; SqlConnection myCon = new SqlConnection("Server=ME-SQL\\datenbank;Database=Intranet;User ID=User;Password=Password;");
this.newsList = new List<News>();
try { myCon.Open();
SqlCommand myCmd = new SqlCommand("SELECT * FROM [dbo].[tblNews] ORDER BY [dbo].[tblNews].[idNews] DESC", myCon); SqlDataReader myReader = myCmd.ExecuteReader();
DateTime heute = DateTime.Now;
while (myReader.Read()) { News neues = new News();
if (!DBNull.Value.Equals(myReader["Text"])) { text = myReader["Text"].ToString(); } else { text = " "; }
neues.setNews(DateTime.Parse(myReader["Datum"].ToString()), myReader["Titel"].ToString(), myReader["Text"].ToString(), myReader["Kommentar"].ToString()); neues.setFile( ); newsList.Add(neues); } myReader.Close(); } catch (Exception ex) { ex.ToString(); } myCon.Close(); } |
Nun der Hauptcode:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77:
| public void createOverView() { Controller ctr = new Controller(); NewsOverView.Controls.Clear(); List<News> neues;
ctr.fillNewsList(); neues = ctr.getNewsList();
int tblRows = ctr.getNewsList().Count;
Table tbl = new Table() { };
NewsOverView.Controls.Add(tbl); TableRow header = new TableRow(); TableHeaderCell hDatum = new TableHeaderCell() { Text = "", CssClass = "thIDnews" }; TableHeaderCell hDaten = new TableHeaderCell() { Text = "", CssClass = "thDatennews" };
header.Cells.Add(hDatum); header.Cells.Add(hDaten);
tbl.Rows.Add(header);
int zeile = 1;
for (int i = 0; i < tblRows; i++) { TableRow tr = new TableRow();
zeile++;
TableCell datum = new TableCell() { Text = neues[i].getDatum().ToString("MM.yyyy"), CssClass = "AusrDatum" }; TableCell daten = new TableCell() { }; Table tblData = new Table() { CssClass = "tblDataNews" };
TableRow tr2 = new TableRow(); TableCell titel = new TableCell() { Text = neues[i].getTitel().ToString(), CssClass = "AusrTitel" }; tr2.Cells.Add(titel);
TableRow tr3 = new TableRow(); TableCell foto = new TableCell() { Text = }; tr3.Cells.Add(foto);
TableRow tr4 = new TableRow(); TableCell kommentar = new TableCell() { Text = neues[i].getKommentar().ToString(), CssClass = "AusrKommentar" }; tr4.Cells.Add(kommentar);
TableRow tr5 = new TableRow(); TableCell inhalt = new TableCell() { Text = neues[i].getText().ToString(), CssClass = "AusrText" }; tr5.Cells.Add(inhalt);
tblData.Rows.Add(tr2); tblData.Rows.Add(tr3); tblData.Rows.Add(tr4); tblData.Rows.Add(tr5);
daten.Controls.Add(tblData);
tr.Cells.Add(datum); tr.Cells.Add(daten);
tbl.Rows.Add(tr); } } |
Wie schon im Code zwischen den Zeilen als Kommetar erwähnt befindet sich das Bild als
byte[] in der Datenbank.
Hier noch einmal ein Foto wie die News dann aussehen.
Schon einmal vielen Dank im vorraus
Svenni9991
PS: Ebenfalls habe ich das Problem das wenn ich HTML-Text mit Formatierungen wie z.B. <b> hinzufügen will er mir folgende Fehlermeldung ausgibt: "
Ein möglicherweise gefährlicher Request.Form-Wert wurde vom Client (GridView1$ctl02$ctl04="...ac, enim. <br />Aliquam lorem ...") entdeckt." Das gleiche passiert wenn ich die Einträge der Datenbank in einem GridView ändern und aktualisieren will. Ich habe es mit Encode und Decode schon versucht nur es hat nie geklappt. Hat da evtl. noch jemand einen Tipp?