3 Stimmen

Teilstringwert aus Datenbank in .NET / C# abrufen

Ich verwende das Folgende, um Werte aus meiner Datenbank auszulesen:

    while (reader.Read())
    {
        newsLabel.Text += "<div style='float:left;'>" + reader["body"] + "</div>";
    }

Ich habe mich gefragt. Wie kann ich den Wert von "body" auf nur 0,20 Zeichen reduzieren?

Gibt es eine Teilstring-Funktion, die ich verwenden kann?

Vielen Dank!

4voto

Martin Liversage Punkte 100306

Unter der Annahme, dass die body Spalte eine Zeichenkette enthält, können Sie diese wie folgt abschneiden:

var body = (String) reader["body"];
var truncatedBody = body.Substring(0, Math.Min(body.Length, 20));

Wenn die Spalte null müssen Sie dies überprüfen, bevor Sie Substring .

Substring löst eine Ausnahme aus wenn die angeforderte Länge der Teilzeichenkette größer ist als die Länge der tatsächlichen Zeichenkette. Deshalb müssen Sie das Minimum aus der Zeichenfolgenlänge und der gewünschten Teilzeichenfolgenlänge verwenden.

Wenn Sie dies häufig tun, können Sie eine Erweiterungsmethode erstellen:

public static class StringExtensions {

  public static String Truncate(this String str, Int32 length) {
    if (length < 0)
      throw new ArgumentOutOfRangeException("length");
    if (str == null)
      return String.Empty;
    return str.Substring(0, Math.Min(str.Length, length));
  }

}

Sie können ihn wie folgt verwenden:

((String) reader["body"]).Truncate(20)

2voto

Amitabh Punkte 54879

Sie können dies wie unten gezeigt tun. Stellen Sie sicher, dass Sie nach DbNull suchen.

while (reader.Read()) 
        {
            string body = reader["body"] is DBNull ? "" : Convert.ToString(reader["body"]);

            if(body.Length > 20)
              body = body .Substring(0, 20);

            newsLabel.Text += "<div style='float:left;'>" + body  + "</div>";   
        }

1voto

anishMarokey Punkte 11011

Ja, Sie können es in Substring in C#

newsLabel.Text += "<div style='float:left;'>" + Convert.ToString( reader["body"]).SubString(0,20) + "</div>";

lesen MSDN-Link

1voto

Haris Hasan Punkte 29356
reader["body"].ToString().Substring(0,20);

1voto

Stuart Punkte 66386

Zusätzlich zu den hier gegebenen Antworten können Sie diese Teilzeichenkette auch zurück in die Datenbank übertragen, da SQL über eine Funktion SubString verfügt.

Wenn Sie z. B. Linq 2 Sql verwenden, kann die c#-Methode SubString in eine SQL-Operation innerhalb der Datenbank zurückübersetzt werden. http://weblogs.asp.net/dixin/archive/2010/04/15/understanding-linq-to-sql-4-data-retrieving-via-query-methods.aspx

Ob dies optimal oder erforderlich ist, hängt von Ihrer Anwendung und Ihrer Datenbank ab.

Ich hoffe, das hilft

Stuart

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X