DGV-Werte abhängig von SQL Ergebnis?

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von rgomez.

    DGV-Werte abhängig von SQL Ergebnis?

    Hallo und guten Abend!

    Kleine Frage:

    Hab ein Dataset, die aus einer DB gefüllt wird. In einer der Tabellen gibts Adressen. Einer der Felder in dieser Tabelle ist das Land. Dieser Feld ist aber kodiert, also da steht kein Land sonder eine Zahl (0-255), die das Land kodiert.

    Wie kann ich jetzt am einfachsten/elegantesten anhand der Zahl in DGV das Land anzeigen lassen. D.h z.B statt z.B "37" soll "Deutschland" angezeigt werden oder statt "123" soll Österreich..usw? Die Tabelle mit Zahl-Land liegt in einer anderen DB, also wurde gerne ich selber es lösen statt nur dafür die andere DB abzufragen, da die Zahlen für die Länder immer gleich bleiben.

    Die ganze Gesichte habe ich mit dem Designer erstellt und da weiss ich nicht wie das geht...Mit LINQ wusste ich wie, aber mit Designer nicht....denke muss den DataSetDesigner selber editieren, geht es einfacher oder so was geht mit Designer nicht und man muss alles selber coden?

    Danke im Voraus und schönen Abend nochmal
    Life doesn't give you a datasheet. Sometimes the docs are wrong and you have to try it.
    Du kannst eine Länder-Tabelle anlegen, mit den Nummern als Primkey.
    Und dann kannst du eine DataRelation auf deine Address-Tabelle einrichten, die die Nummern der AddressDatensäteze als ForeignKey definiert.
    Und dann kannst du DatagridviewComboboxColumns einrichten, die statt der Nummer den Ländernamen anzeigen.
    Selber coden muss man da garnix - musst halt gewährleisten, dass die LänderTabelle bereits befüllt ist, wenn du die AddressTabelle befüllst - aber das ist ja eine Selbstverständlichkeit der relationalen Datenmodellierung.
    das Problem ist ich kann nicht schreibend auf die DB zugreifen.

    Habe am Ende es mit INNER JOIN und die Tabelle in der anderen DB.

    Life doesn't give you a datasheet. Sometimes the docs are wrong and you have to try it.

    rgomez schrieb:

    das Problem ist ich kann nicht schreibend auf die DB zugreifen.
    Hä? hat jmd was von "schreibend in Db gesagt?
    Ah!

    ErfinderDesRades schrieb:

    Du kannst eine Länder-Tabelle anlegen
    Mit 'Tabelle anlegen' meine ich ('natürlich' - wie ich finde) eine DataTable, und anzulegen im typisierten Dataset-Designer deines Datasets.

    Ich hoffe, du weißt, wovon ich rede, sonst frag bitte.
    ok, also einfach Datatable erstellen und selber füllen.

    A propo kennst zufällig einen Weg die Rtf Property eines Richtextbox zu binden? Habe versucht eine eigene Klasse die von Richtextbox erbt zu erstellen mit einem Bindable Property "rtf", kompiliert richtig aber beim Ausführen sehe ich nichts in der Textbox...

    Habe RTF Texte als Notizen in einer der Spalten der DB zu diesem Adressen und würde gerne die in einer Richtextbox sehen....
    Life doesn't give you a datasheet. Sometimes the docs are wrong and you have to try it.
    Danke für die Antwort. Leider klappt es nicht, da es keine RTF Property auftaucht, weder bei Databindings noch bei AppBindings.

    Hatte versucht damit:

    VB.NET-Quellcode

    1. ​Imports System.ComponentModel
    2. Imports System.Windows.Forms
    3. Imports System.Runtime.InteropServices
    4. <ClassInterface(ClassInterfaceType.AutoDispatch),
    5. DefaultBindingProperty("Rtf"), Description("DescriptionRichTextBox"),
    6. ComVisible(True), Docking(DockingBehavior.Ask)>
    7. Public Class MyRTB
    8. Inherits RichTextBox
    9. <Bindable(True), RefreshProperties(RefreshProperties.All),
    10. SettingsBindable(True), DefaultValue(""), Category("Appearance")>
    11. Public Overloads Property Rtf As String
    12. Get
    13. Return MyBase.Rtf
    14. End Get
    15. Set(ByVal value As String)
    16. MyBase.Rtf = value
    17. End Set
    18. End Property
    19. End Class


    Aber klappts nicht und eine Menge Ausnahme bei der Console....
    Life doesn't give you a datasheet. Sometimes the docs are wrong and you have to try it.