Bindingsource Filter mit System.Int32

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von schnibli.

    Bindingsource Filter mit System.Int32

    Guten Tag

    Ich würde gerne einen Bindingsourcefilter wie z.b.

    VB.NET-Quellcode

    1. TblAnlagenNrBindingSource.Filter = String.Format("[AnlagenNr] LIKE '{0}%', " * " & TextBox1.Text")


    einrichten,

    jedoch ist die Spalte, die ich Filtern möchte in "System.Int32" daher ist der Fehler

    VB.NET-Quellcode

    1. Eine Ausnahme (erste Chance) des Typs "System.InvalidCastException" ist in Microsoft.VisualBasic.dll aufgetreten.


    kennt hier jemand das Problem, und wenn ja kann man das lösen? :)
    Aber wenn ich das so löse:

    VB.NET-Quellcode

    1. TblAnlagenNrBindingSource.Filter = String.Format("[AnlagenNr] " = " & TextBox1.Text")


    müsste ich ja die exakte Nummer eingeben, gibt es auch eine möglichkeit dies so zu lösen wie unten ? (also, das mann nur einen Teil der nummer eingeben muss?
    Ich hab's mal so gelöst:

    VB.NET-Quellcode

    1. TblAnlagenNrBindingSource.Filter = String.Format("CONVERT([AnlagenNr],System.String) LIKE '*{0}*'", Textbox1.Text)


    oder mehr generisch

    VB.NET-Quellcode

    1. Bindingsource.Filter=String.Format("CONVERT([{0}],System.String) LIKE '*{1}*'", Feldname, IntegerWert)


    Du kannst durch die vorherige Umwandlung sicherstellen, dass in der Textbox wirklich ein gültiger Int32-Wert eingegene ist. Und ... man kann das auf beliebige Datentypen erweitern.