SQL Datenbank native aus Silverlight ansprechen

Nach dem Motto es gibt nichts, was es nicht gibt, betrachte ich in meinem Blog dieses mal den direkten Zugriff auf einen SQL Server- aus Silverlight! Richtig gelesen. Dazu muss allerdings die Anwendung Out Of Browser laufen und mit vollen Rechten. Das kann man in den Einstellungen des Silverlight Projektes konfigurieren. Auf einem IOS von Apple läuft das dann allerdings nicht mehr.

image

image

So ausgerüstet, kann man direkt COM Objekte ansprechen und damit auch die gute alte ADO Schnittstelle. Und plötzlich sind VB 6 Kenntnisse doch nützlich. Per AutomationFactory (aus System.Runtime.InteropServices.Automation) kann man einen Recordset erstellen und Satz für Satz per Forward Cursor durch die Tabelle steppen.

Das programmieren ist allerdings richtig mühsam, da keine Intellisense Unterstützung für solcher Art instanziiertes Objekte möglich ist. Die Customer Klasse habe ich sozusagen als schon gegeben vorausgesetzt.

Private Sub Button1_Click(ByVal sender As System.Object, 
ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click Dim Conn = AutomationFactory.CreateObject("ADODB.Connection") Dim rs = AutomationFactory.CreateObject("ADODB.RecordSet") Conn.Open("Provider=SQLNCLI10.1;Data Source=localhost;Database=Northwind;Integrated Security=SSPI") rs.Open("Select * from Customers", Conn) Dim c As New List(Of Customers) While rs.EOF = False c.Add(New Customers With {.CustomerID = rs("CustomerID").Value, .CompanyName = rs("CompanyName").value, .ContactName = rs("ContactName").Value, .City = rs("City").Value } ) rs.MoveNext() End While rs.Close() DataGrid1.ItemsSource = c End Sub

Eine OOB Silverlight Anwendung unterscheidet sich für den Anwender nicht von einer einfachen WPF oder Winforms Anwendung.

image

Jetzt die Frage, soll man das tun? Eine solcher Art erstellte Silverlight Applikation ist schwerer zu coden und nicht mehr im Browser und auf Apple Plattform lauffähig.

Kommentar schreiben