Frage

Ich versuche, ein Datatable zu verwenden, von einem MySqlDataAdapter gefüllt, die eine Liste von Kommentaren für einen Blogeintrag enthält. Aus irgendwelchen Gründen, wenn das Feld „anonymous“ auf „1“, der Benutzername Feld ist leer und soll mit einer bestimmten Zeichenfolge ersetzt werden.

Das Problem ist, dass ich, wenn ich versuche, den Wert des Feldes zu erhalten, bekomme ich entweder „wahr“ oder „falsch“. Mein Code sieht wie folgt aus:

DataTable modifiedComments = new DataTable();
// The function GetCommentsById() returns a MySqlDataAdapter with the result of the query
MySqlDataAdapter commentsContainer = Wb.Entry.GetCommentsById(imageId);
commentsContainer.Fill(modifiedComments);
commentsContainer.Dispose();

    foreach (DataRow row in modifiedComments.Rows)
        {
            string status;
            // This never returns true, so we always get into the else
            if (row["anonymous"] == "1")
            {
                    status = "You are anonymous";
            }
            else
            {
                    status = "You are not anonymous";
            }
        }

        viewImageCommentsRepeater.DataSource = modifiedComments;
        viewImageCommentsRepeater.DataBind();
War es hilfreich?

Lösung

Das Feld ist wahrscheinlich ein "Bit" Feldtyp, die in ADO.NET Boolean-Karten

Einfach prüfen wahr oder falsch:

if ((bool)row["anonymous"])
   ...
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top