Abfragen auf Datasets?

02/12/2007 - 05:43 von Werner Strewe | Report spam
Hallo,
ich habe ein Dataset im Speicher (incl. Relationen), also keine Datenbank
dahinter.Meine Datenmenge ist so gering (1000-3000 DS), daß ich keine DB
benutzen
müßte.
Gibt es eine Möglichkeit jetzt eine Abfrage (select und delete) über dieses
Dataset zu machen, so als wàre es eine Datenbank?
Also z.B. eine neue Tabelle TBnew erzeugen aus einem join der Tab1 und Tab2?

Danke!
Grüße von werner
 

Lesen sie die antworten

#1 Peter Fleischer
02/12/2007 - 06:47 | Warnen spam
"Werner Strewe" schrieb im Newsbeitrag
news:

ich habe ein Dataset im Speicher (incl. Relationen), also keine Datenbank
dahinter.Meine Datenmenge ist so gering (1000-3000 DS), daß ich keine DB
benutzen
müßte.
Gibt es eine Möglichkeit jetzt eine Abfrage (select und delete) über
dieses
Dataset zu machen, so als wàre es eine Datenbank?
Also z.B. eine neue Tabelle TBnew erzeugen aus einem join der Tab1 und
Tab2?



Hi Werner,
wenn du mit deiner Frage eine SQL-Anweisung meinst, dann gehst das nicht, da
es keinen Provider gibt (bzw. keiner mir bekannt ist), der eine SQL
Anweisung auf Speicherbereiche im RAM ausführt.

Du kannst aber LINQ nutzen, z.B. so:

Dim ds = TestData.GetDataSet

Dim res = From c1 In ds.Tab1 Join c2 In ds.Tab2 _
On c1.ID Equals c2.FK Select c1, c2

For Each o In res
Trace.WriteLine(String.Format("{0} {1}", _
o.c1.col1, o.c2.col2))
Next

Dazu TestData:

Public Class TestData

Shared ds As New DataSet1

Shared Sub New()
For i = 1 To 10
Dim rm = ds.Tab1.NewTab1Row
rm.col1 = "master " & i.ToString
ds.Tab1.Rows.Add(rm)
Next
For k = 1 To 100
Dim rc = ds.Tab2.NewTab2Row
rc.FK = ds.Tab1.Item(Int(10 * Rnd())).ID
rc.col2 = "child " & k.ToString
ds.Tab2.Rows.Add(rc)
Next
End Sub

Public Shared Function GetDataSet() As DataSet1
Return ds
End Function

End Class

Im DataSet1 gibt es:

Tab1 mit ID (Autowert), col1
Tab2 mit ID (Autowert), FK, col2
Beziehung Tab1(ID) -> Tab2(FK)

Viele Gruesse

Peter

Ähnliche fragen