Autor Beitrag
FrEEzE2046
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109

Windows 98, 2000, XP Pro, Vista Ultimate 32 & 64 Bit, Windows 7 Beta 64 Bit
C/C++, C# (VS 2008 TeamSystem) - Delphi (Delphi 5) - Java (Eclipse)
BeitragVerfasst: Mi 12.05.10 17:00 
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:
ausblenden volle Höhe 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<intobject>> Table = new Dictionary<int, Dictionary<intobject>>();
                        Dictionary<intobject> Column = null;

                        while (reader.Read())
                        {
                            Column = new Dictionary<intobject>();

                            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?
saekularfranke
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Fr 14.05.10 09:02 
Hallo,

ich denke es wäre eine Möglichkeit ein Dataset als
XML zu exportieren / oder in einer Auswertung zu verwenden.

Gruß
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Fr 14.05.10 12:42 
user profile iconFrEEzE2046 hat folgendes geschrieben Zum zitierten Posting springen:
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.
Mit Dictionarys sollte WCF keine Probleme haben, aber warum so kompliziert? Ein zeilenweise indiziertes Dictionary nenne ich normalerweise eine Liste.
ausblenden C#-Quelltext
1:
2:
3:
var rows = new List<object[]>();
while (reader.Read())
  rows.Add(reader.GetValues());

_________________
>λ=