Hi,
also im Normalfall arbeite ich ja direkt auf einer Datenbank und nicht mit den in VS gegebenen Mitteln.
Nun habe ich aber eine Problemstellung anhand derer ich gerne ein wenig mit Datasets arbeiten würde.
Bislang arbeite ich mit Datasets wenn ich mir bestimmte Daten in ein Datagrid lade, sodass ein Anwender in diesem Änderungen tätigen kann.
Hier arbeite ich aber immer nur auf EINER Datenbanktabelle...
Dort gehe ich wie folgt vor:
Im Kopf die Definition:
Zum laden:
Zum speichern:
Nun habe ich aber in meiner Problemstellung ein etwas anderes Bild.
Ich habe die Datenbank (Access 2013) in VS als Datenquelle eingetragen (sie aber nicht dem Programm hinzugefügt, sondern sie liegt noch immer in nem Netzwerkordner).
Dadurch hat mir VS ja nen DataSet erstellt.
Das ganze sieht dann so aus:
Wenn sich jetzt jemand fragt, warum dort ID steht und was die PKs sind... Es handelt sich hierbei um ein Dump einer Progress-Datenbank in eine CSV, welche in Access importiert wurde. Hier werden nicht alle Felder benötigt, aber die kompletten CSVs importiert.
In Access kann ich mir die Daten die ich benötige mittels:
so zusammenfügen wie ich es möchte.
Wie kann ich sowas in VB umsetzen (Programmgesteuert. Nicht im Designer)?
Ich habe das Problem, dass der Commandbuilder auf Select-Abfragen mit einem Join keine Update-Routinen erstellen kann.
Ich möchte bestimmte Änderungen im Code (sprich in nem Lauf) ändern lassen, was mir so mit einer SQL Abfrage nicht möglich ist.
also im Normalfall arbeite ich ja direkt auf einer Datenbank und nicht mit den in VS gegebenen Mitteln.
Nun habe ich aber eine Problemstellung anhand derer ich gerne ein wenig mit Datasets arbeiten würde.
Bislang arbeite ich mit Datasets wenn ich mir bestimmte Daten in ein Datagrid lade, sodass ein Anwender in diesem Änderungen tätigen kann.
Hier arbeite ich aber immer nur auf EINER Datenbanktabelle...
Im Kopf die Definition:
Zum laden:
VB.NET-Quellcode
- Dim con As OleDbConnection = New OleDbConnection(ConStrSQL)
- Dim cmd As OleDbCommand = New OleDbCommand("SELECT ID, (LTrim(RTrim(StrackNorm1)) + LTrim(RTrim(StrackNorm2))) As [Strack Norm], LTrim(RTrim(StrackNorm1)) AS [Strack Norm1], LTrim(RTrim(StrackNorm2)) AS [Strack Norm2], Benennung, AufgenommenAm AS [Aufgenommen am], GesperrtAm AS [Gesperrt am], Bemerkung, Ansprechpartner FROM Pa_GeloeschteArtikel ORDER BY StrackNorm2", con)
- con.Open()
- myDA = New OleDbDataAdapter(cmd) builder As OleDbCommandBuilder = New OleDbCommandBuilder(myDA)
- myDataSet = New DataSet()
- myDataSet.CaseSensitive = False
- myDA.Fill(myDataSet, "MyTable")
- GeloeschteArtikelDataGridView.DataSource = myDataSet.Tables("MyTable").DefaultView
- GeloeschteArtikelDataGridView.Columns(0).Visible = False
- GeloeschteArtikelDataGridView.Columns(1).ReadOnly = True
- con.Close()
- con = Nothing
Zum speichern:
VB.NET-Quellcode
- If Me.myDataSet.HasChanges Then
- If MessageBox.Show("Wollen Sie die Änderungen speichern?", "Speichern", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then
- Me.Validate()
- Try
- Me.myDA.Update(Me.myDataSet.Tables("MyTable"))
- Catch ex As Exception
- MessageBox.Show(ex.ToString)
- End Try
- Me.myDataSet.AcceptChanges()
- End If
- End If
Nun habe ich aber in meiner Problemstellung ein etwas anderes Bild.
Ich habe die Datenbank (Access 2013) in VS als Datenquelle eingetragen (sie aber nicht dem Programm hinzugefügt, sondern sie liegt noch immer in nem Netzwerkordner).
Dadurch hat mir VS ja nen DataSet erstellt.
Das ganze sieht dann so aus:
Wenn sich jetzt jemand fragt, warum dort ID steht und was die PKs sind... Es handelt sich hierbei um ein Dump einer Progress-Datenbank in eine CSV, welche in Access importiert wurde. Hier werden nicht alle Felder benötigt, aber die kompletten CSVs importiert.
In Access kann ich mir die Daten die ich benötige mittels:
SQL-Abfrage
- SELECT Verbrauch_FueEle_2017_2013.Teil, Verbrauch_FueEle_2017_2013.Suchbegriff, Verbrauch_FueEle_2017_2013.TGr, Verbrauch_FueEle_2017_2013.TA, Verbrauch_FueEle_2017_2013.Meldebestand, Verbrauch_FueEle_2017_2013.MeldNeu, Verbrauch_FueEle_2017_2013.[Gesamtsumme von Verbrauch], Verbrauch_FueEle_2017_2013.Verbrauch_durchschnitt, Verbrauch_FueEle_2017_2013.DiffMeldVerbrauch, Verbrauch_FueEle_2017_2013.HptlLief,
- E_ArtLiefStaffel_Prod_20130909.gueltig_ab, E_ArtLiefStaffel_Prod_20130909.gueltig_bis, E_ArtLiefStaffel_Prod_20130909.abMng, E_ArtLiefStaffel_Prod_20130909.Preis, E_ArtLiefStaffel_Prod_20130909.Aktiv, E_ArtLiefStaffel_Prod_20130909.Staffel, E_ArtLiefStaffel_Prod_20130909.Inaktiv
- FROM Verbrauch_FueEle_2017_2013
- LEFT JOIN E_ArtLiefStaffel_Prod_20130909
- ON (Verbrauch_FueEle_2017_2013.HptlLief = E_ArtLiefStaffel_Prod_20130909.LiefNr)
- AND (Verbrauch_FueEle_2017_2013.Teil = E_ArtLiefStaffel_Prod_20130909.Teil)
- WHERE (((E_ArtLiefStaffel_Prod_20130909.Inaktiv)=False))
- ORDER BY Verbrauch_FueEle_2017_2013.Teil, E_ArtLiefStaffel_Prod_20130909.abMng;
so zusammenfügen wie ich es möchte.
Wie kann ich sowas in VB umsetzen (Programmgesteuert. Nicht im Designer)?
Ich habe das Problem, dass der Commandbuilder auf Select-Abfragen mit einem Join keine Update-Routinen erstellen kann.
Ich möchte bestimmte Änderungen im Code (sprich in nem Lauf) ändern lassen, was mir so mit einer SQL Abfrage nicht möglich ist.
Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
... Nun solltest es selber wissen. :'D
Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
... Nun solltest es selber wissen. :'D
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „MemoAnMichSelbst“ ()