ein Bild zum Datensatz laden, speichern und auf click anzeigen lassen

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von slycan.

    ein Bild zum Datensatz laden, speichern und auf click anzeigen lassen

    hallo zusammen
    ich möchte zu jedem neuen Datensatz ein Bild laden, speichern und anzeigen lassen
    kann mir jemand dabei HELFEN ß1
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Code
    2. Public Class Form1
    3. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    4. 'TODO: Diese Codezeile lädt Daten in die Tabelle "FPDataSet.tbl_FP". Sie können sie bei Bedarf verschieben oder entfernen.
    5. Me.Tbl_FPTableAdapter.Fill(Me.FPDataSet.tbl_FP)
    6. Me.Tbl_FPDataGridView.Refresh()
    7. End Sub
    8. Private Sub Tbl_FPBindingNavigatorSaveItem_Click_2(sender As Object, e As EventArgs) Handles Tbl_FPBindingNavigatorSaveItem.Click
    9. Me.Validate()
    10. Me.Tbl_FPBindingSource.EndEdit()
    11. Me.TableAdapterManager.UpdateAll(Me.FPDataSet)
    12. MessageBox.Show("Dateneigebe/Änderung würde durchgeführt")
    13. End Sub
    14. 'Private Sub TextSuche_TextChanged(sender As Object, e As EventArgs) Handles TextSuche.TextChanged
    15. 'On Error GoTo ErrRe
    16. ' Tbl_FPDataGridView.DataSource = Me.FPDataSet.tbl_FP.Select("Marke like '" & TextSuche.Text & "%'")
    17. 'Dim ColumCount As Integer = Tbl_FPDataGridView.ColumnCount - 1
    18. 'For g = 0 To ColumCount
    19. 'Dim i As Integer = Nothing
    20. ' Tbl_FPDataGridView.Rows(i).Cells(g).Style.BackColor = Color.Cyan
    21. 'Next
    22. 'ErrRe:
    23. ' End Sub
    24. ' Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    25. 'On Error GoTo ErrRe
    26. ' TextSuche.Select()
    27. ' Tbl_FPBindingSource.Filter = Nothing
    28. 'With Tbl_FPDataGridView
    29. '.ClearSelection()
    30. ' TextSuche.Clear()
    31. '.ReadOnly = True
    32. '.MultiSelect = False
    33. '.DataSource = Tbl_FPBindingSource
    34. 'End With
    35. 'ErrRe:
    36. ' End Sub
    37. Private Sub TextSuche_KeyDown(sender As Object, e As KeyEventArgs) Handles TextSuche.KeyDown
    38. If e.KeyCode = Keys.Enter Then
    39. 'Button2.PerformClick()
    40. Try
    41. If Not String.IsNullOrEmpty(TextSuche.Text) Then
    42. Dim keyword As String = Me.TextSuche.Text.Trim
    43. Me.Tbl_FPBindingSource.Filter = "(Convert(Erstzulassung, 'System.String') LIKE '" & TextSuche.Text & "')" &
    44. "OR(Marke LIKE '%" & keyword & "%')" &
    45. "OR (Erstzulassung LIKE '%" & keyword & "%')" &
    46. "OR (Kennzeichen LIKE '%" & keyword & "%')" &
    47. "OR (Reifengrösse LIKE '%" & keyword & "%')" &
    48. "OR (Sonstiges LIKE '%" & keyword & "%')"
    49. Dim ColumCount As Integer = Tbl_FPDataGridView.ColumnCount - 1
    50. For g = 0 To ColumCount
    51. Dim i As Integer = Nothing
    52. Tbl_FPDataGridView.Rows(i).Cells(g).Style.BackColor = Color.Cyan
    53. Next
    54. Me.Tbl_FPDataGridView.Refresh()
    55. If Tbl_FPBindingSource.Count <> 0 Then
    56. With Tbl_FPDataGridView
    57. End With
    58. Else
    59. Dim cantFind As String = TextSuche.Text
    60. MsgBox("-->" & cantFind & vbNewLine &
    61. "ihre eingabe würde nicht gefunden.",
    62. MsgBoxStyle.Information, "hey Boss!")
    63. Tbl_FPBindingSource.Filter = Nothing
    64. With Tbl_FPDataGridView
    65. .ClearSelection()
    66. .ReadOnly = True
    67. .MultiSelect = False
    68. .DataSource = Tbl_FPBindingSource
    69. End With
    70. End If
    71. Else
    72. Me.Tbl_FPBindingSource.RemoveFilter()
    73. Form1_Load(sender, e)
    74. End If
    75. Catch ex As Exception
    76. MessageBox.Show("Error:" + ex.Message.ToString(),
    77. "Information - Sly.",
    78. MessageBoxButtons.OK, MessageBoxIcon.Information)
    79. Finally
    80. Me.TextSuche.Focus()
    81. End Try
    82. End If
    83. End Sub
    84. Private Sub LinkLabel1_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked
    85. Me.LinkLabel1.LinkVisited = True
    86. System.Diagnostics.Process.Start("http://www.Vita-schnitt.de")
    87. End Sub
    88. Private Sub PictureBox3_Click(sender As Object, e As EventArgs) Handles PictureBox3.Click
    89. Close()
    90. End Sub
    91. Private Sub PictureBox2_Click(sender As Object, e As EventArgs) Handles PictureBox2.Click
    92. Me.TextSuche.Focus()
    93. End Sub
    94. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    95. Form2.ShowDialog()
    96. End Sub
    97. Private Sub BindingNavigatorAddNewItem_Click(sender As Object, e As EventArgs) Handles BindingNavigatorAddNewItem.Click
    98. Me.MarkeTextBox.Focus()
    99. End Sub
    100. End Class



    Codeanzeige korrigiert ~VaporiZed

    *Topic verschoben*
    Bilder
    • FP.PNG

      108,91 kB, 794×318, 76 mal angesehen

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Marcus Gräfe“ ()

    ErfinderDesRades schrieb:

    woher weisst du denn, welches Bild zu einem neuen Datensatz gehören soll?


    ja und das ist mein Problem ich weiß es nicht wie ich das machen soll

    ich möchte zu jedem neuen Datensatz ein Bild hinzufügen
    ich versuche es zu erklären
    wenn ich ein neuen Datensatz erfasse möchte ich dann auch ein Bild dazu laden und speichern
    ps:ich merke es ist nicht leicht das alles zu erklären, (bin Anfänger , für jede Hilfe bin ich dankbar
    Das wird sehr schnell sehr resourcenfressend.
    Also ein bild belegt ja gerne mal 12MB.
    Wenn du also 1000 solcher Datensätze in dein Dataset lädtst, dann belegst du damit 12 GB Arbeitsspeicher.
    Das dauert ganz schön, und v.a. viele ältere Rechner wären damit überfordert. Und auch zu neuen Rechnern ist das nicht nett.
    Wie gedenkst du dem zu begegnen?
    Sowas muss man nämlich geklärt haben, bevor man die Datenbank überhaupt anlegt.

    slycan schrieb:

    VB.NET-Quellcode

    1. Form2.ShowDialog()
    Gugst Du hier:
    Dialoge: Instanziierung von Forms und Aufruf von Dialogen
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Die Bilder könnten auch beim auswählen der Bilddatei in eine Ordnerstruktur (z.b. neben der .exe, oder ein Netzlaufwerk falls Multiuser betrieb) verschoben werden und dieser Pfad statt dem ganzen Bild dann gespeichert werden.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    @slycan In Anlehnung an ErfinderDesRades' Worte Das wird sehr schnell sehr resourcenfressend. Also ein bild belegt ja gerne mal 12MB.
    Schreib dir eine Prozedur
    Private Sub Load_the_pictures_only_when_shown_and_free_up_memory_after_an_Image_is_not_needed(), in der du die Bilder verwirfst, die du aktuell nicht brauchst, und die lädst, die du brauchst. Das hat jetzt natürlich weitere Effekte. Mach dir ein Boolean-Array in der Größe wie du Dateipfade hast, und merk dir damit, welche Bilder du geladen hast und welche nicht.
    Hier ein kopiertes Beispiel von mir. Ich habe eine
    List(of Klasse xy), in der Instanzen der Klasse xy sind. In der Klasse.vb gibt es mehrere Variablen – eine List(of String) names Pfade_der_Bilder und das Boolean-Array

    VB.NET-Quellcode

    1. Meine_Liste(Meine_Liste.Count - 1).BoolArray = New Boolean(Instanzname.Pfade_der_Bilder.Count - 1) {}


    Kennst du dich mit Klassen aus? Sonst kann ich dir mal ein Beispiel machen, wenn du sagst, was das für Daten sind :)
    danke erst mal für eure Vorschläge
    nein Bartosz ich wäre dir sehr dankbar wenn du das machen wurdest
    es sind Fahrzeugdaten (Fahrzeugschein/Brief)
    ich möchte bei neu Eingabe wie auf den Bild ,ein Bild von Fahrzeugschein/Brief laden und zum Datensatz speichern
    und auf ein klick auf das Bild ,mir das Fahrzeugschein/Brief anzeigen lassen
    Die Bilder sollen ja auch in eine Ordner am PC gespeichert werden(war auch so meine Idee)
    @slycan So, hab's hochgeladen. Das ist die abgespeckte Version meines Ordnungssystem-Programms. Habe dieses Programm auf deine Bedürfnisse angepasst (Textfelder für Hersteller usw). Ich werde in den nächsten Tagen weitermachen. Aber du kannst erst einmal damit arbeiten. Du musst das Ganze als .zip herunterladen, entzippen, und einmal Visual Studio öffnen, weil es noch keine .exe gibt.
    github.com/il-Lupo/vehicle-fleet
    Hallo,
    ich habe gerade in meinem Guthub-Repo nachgesehen. Da wurde tatsächlich der Ordner "Packages" nicht hochgeladen. Bei den anderen 2 Projekten ging's..Komisch. Muss ne Limitierung bei GitHub sein.
    Egal, mach ein neues WinForms-Projekt auf und füge die heruntergeladenen Dateien einzeln hinzu. Rechtsklick auf den Projektmappenexplorer:


    Dann musst du dir nur noch über den Visual Studio-eigenen Nuget-Paketmanager "Microsoft.WindowsAPICodePack-Shell" herunterladen. Dann ist alles erledigt.