2009-07-12 9 views
2

Ich versuche, eine DataTable zu verwenden, die von einem MySqlDataAdapter gefüllt wird, der eine Liste von Kommentaren für einen Blogeintrag enthält. Wenn das Feld "anonymous" auf "1" gesetzt ist, ist das Feld username aus bestimmten Gründen leer und sollte durch eine angegebene Zeichenfolge ersetzt werden.Warum gibt meine DataTable immer "wahr/falsch" zurück, aber niemals eine Zeichenkette?

Das Problem, das ich habe, ist, dass, wenn ich versuche, den Wert des Feldes zu erhalten, ich entweder "wahr" oder "falsch" bekomme. 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(); 

Antwort

5

Das Feld wird wahrscheinlich ein "Bit" Feldtyp, der in

ADO.NET Boolean Karten

einfach überprüfen, wahr oder falsch:

if ((bool)row["anonymous"]) 
    ... 
Verwandte Themen