Announcement

Collapse
No announcement yet.

Listbox und Datenzugriff

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Listbox und Datenzugriff

    hallo
    ich bin mit vb express 2005 zugange.

    jetzt habe ich ein problem. ich will einen in einer listbox markierten datensatz in der originaldatenbank löschen. nach dem was ich bis jetzt dazu gelesen habe, verstehe ich eigentlich nur noch bahnhof.

    (die listbox wurde über FillBy aus der Datenbank gefüllt und ist per TableAdapter gebunden)

    kann mir jemand helfen?

    schon mal im voraus vielen dank!

  • #2
    Hallo,
    die ListBox ist über die BindingSource-Komponente mit dem DataSet verbunden. Über die Eigenschaft <b>Current</b> kann das Programm daher den Datensatz abrufen, der aktuell in der ListBox ausgewählt ist. Jede Tabelle sollte einen Primärschlüssel haben, der eindeutige Werte als Kennzeichner eines Datensatzes in der Datenmenge bereitstellt. Somit reicht es aus, nur den Primärschlüsselwert des ausgewählten Eintrags in der ListBox auszuwählen (auch wenn die Listbox eine andere Spalte der Tabelle anzeigt):
    <code>
    <div style="font-family: Courier New; font-size: 10pt; color: black; background: white; border-top: windowtext 1pt solid; padding-top: 0pt; border-left: windowtext 1pt solid; padding-left: 0pt; border-right: windowtext 1pt solid; padding-right: 0pt; border-bottom: windowtext 1pt solid; padding-bottom: 0pt;"><p style="margin: 0px;"><span style="color: blue;">Dim</span> aDRV <span style="color: blue;">As</span> DataRowView</p><p style="margin: 0px;">aDRV = <span style="color: blue;">DirectCast</span>(DataSetBindingSource.Current, DataRowView)</p><p style="margin: 0px;"><span style="color: blue;">Dim</span> aRow <span style="color: blue;">As</span> DataRow</p><p style="margin: 0px;">aRow = aDRV.Row</p><p style="margin: 0px;">MessageBox.Show(aRow(<span style="color: maroon;">"nr"</span>).ToString())</p></div>
    </code>
    Sobald der Primärschlüsselwert bekannt ist, kann eine DELETE-Anweisung über eine separate SqlCommand-Komponente zur Datenbank geschickt werden, so dass der Datensatz <b>sofort</b> in der Datenbank gelöscht wird. Oder der Datensatz wird im DataSet als gelöscht markiert, damit der nächste <b>Update</b>-Aufruf die Löschung (im Arbeitsspeicher) auch in der Datenbank nachvollzieht

    Comment


    • #3
      @ andreas kosch

      hallo,
      vielen Dank, hat ausgezeichnet geklappt.

      allerdings muss ich sagen wenn man von vba kommt ist hier vieles einfacher, aber auch vieles viel undurchsichtiger

      Comment

      Working...
      X