FrEEzE2046 - Mi 12.05.10 17:00
Titel: Inhalt dynamischer SQL-Tabellen über WCF ermitteln
Hallo,
ich habe einen WCF-Service, den ich über eine Silverlight WebSite kontaktiere. Dieser muss mir Auswertungen aus verschiedenen SQL-Tabellen (deren Aufbau dynamisch ist) ermitteln.
Dabei stellten sich mir zu Beginn zwei Fragen:
1. Wie kann ich dynamisch den Inhalt einer beliebigen Tabelle ermitteln?
2. Wie übermittele ich die Daten, deren Aufbau ich nicht kenne?
Zu Punkt 1: Habe ich jetzt folgende Möglichkeit in Betracht gezogen:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52:
| namespace ReadFromDynamicTable { class Program { static void Main(string[] args) { string connectionString = "";
using (SqlConnection sql = new SqlConnection(connectionString)) { sql.Open();
SqlCommand select = new SqlCommand { Connection = sql, CommandText = "SELECT * FROM [Datenbank].[dbo].[Tabelle]" };
using (SqlDataReader reader = select.ExecuteReader()) { if (reader.HasRows) { int row = 0;
Dictionary<int, Dictionary<int, object>> Table = new Dictionary<int, Dictionary<int, object>>(); Dictionary<int, object> Column = null;
while (reader.Read()) { Column = new Dictionary<int, object>();
for (int i = 0; i < reader.FieldCount; i++) Column.Add(i, reader.GetValue(i));
Table.Add(row++, Column); }
for (int i = 0; i < Table.Count; i++) { Console.WriteLine("----- Row " + Convert.ToString(i) + " -----");
for (int j = 0; j < Table[i].Count; j++) Console.WriteLine(Table[i][j].ToString());
Console.WriteLine("--------------------------------------"); } } } } } } } |
Ich bin mir sicher, dass es da noch eine bessere Möglichkeit als diese Dictionary Lösung gibt. Vor allem im Hinblick auf das versenden der Daten mit WCF.
Wie macht man so etwas am besten?