Laden...

DataTable selber erstellen

Erstellt von mipa_acc vor 16 Jahren Letzter Beitrag vor 16 Jahren 11.103 Views
M
mipa_acc Themenstarter:in
318 Beiträge seit 2006
vor 16 Jahren
DataTable selber erstellen

Hallo,

ich würde mir gerne selber eine DataTable erstellen. Leider hab ich keine Ahnugn, wie ich das anstellen soll.

Ich bin schon eine Weile am rumprobieren... leider ohne erfolg.


                DataTable DateTimeTable = new DataTable("Date/Time Table");

                DataRow row;
                row = DateTimeTable.NewRow();

Sache ich folgendes:
Ich habe eine *.log Datei welche ich gerne in eine DataTable einlesen würde. Die log Datei hat folgenden Aufbau:
2007-10-16T11:19:34.0220193Z | UTC | Information | <n.a.> | SCHD | Load scheduler [Check Endorsement Duration Scheduler]

Jetzt habe ich schon jeden Teil der Zwischen | ... | steht extrahiert. Nun würde ich mir gerne so eine DataTable zusammenbauen.

Geht das evtl. sogar einfacher?

Wenn ihr irgendwelche "Denkanstöße" hättet wäre ich euch dankbar.

MFG mipa_acc

1.564 Beiträge seit 2007
vor 16 Jahren

Hallo mipa_acc

Hier ein Beispiel für die DataTable

DataTable dt = new DataTable();

dt.Columns.Add("Timestamp", typeof(DateTime));
dt.Columns.Add("Information", typeof(string));

foreach (zeile myZeile in file)
{
   DataRow dr = dt.NewRow();

   dr["Timestamp"] = myZeile.Timestamp;
   dr["Information"] = myZeile.Information;

   dt.Rows.Add(dr);
}

Grüße
Flo

Blog: Things about Software Architecture, .NET development and SQL Server
Twitter
Google+

Je mehr ich weiß, desto mehr weiß ich was ich noch nicht weiß.

M
mipa_acc Themenstarter:in
318 Beiträge seit 2006
vor 16 Jahren

Hi Oxygen,

danke für deine Antwort!

Ich werde mir die Sache dann mal näher ansehen.

MFG

M
mipa_acc Themenstarter:in
318 Beiträge seit 2006
vor 16 Jahren

Hi,

eine Frage hab ich noch, und zwar wie bekomme ich die Table dann in den DataAdapter?


          //DataTable mit Inhalt füttern
                DataTable dt = new DataTable();

                dt.Columns.Add("Date/Time", typeof(string));
                dt.Columns.Add("TimeZone", typeof(string));

                DataRow dr = dt.NewRow();

                string[] LogDetail = new string[6];

                LogDetail = CurrentSplitt[0].Split('|');

                dr["Date/Time"] = LogDetail[0];
                dr["TimeZone"] = LogDetail[1];

                dt.Rows.Add(dr);

                DataSet ds = new DataSet("TestDataSet");

                //Ka warum das hier net geht
                ds.Load(........);

                DataAdapter da = new DataAdapter();
                da.Fill(ds);

Für s.Lead() brauche ich ja irgend eine Klasse die IDataReader hat. Hab ich aber leider nicht.

Oder denke ich hier falsch?

MFG

1.274 Beiträge seit 2005
vor 16 Jahren

Das geht nicht, es muss eine Tabelle die den Strukturen entspricht bereits vorhanden sein. Dann brauchst du aber auch nicht die Struktur manuell erzeugen sondern holst sie aus der Datenbank.

Einzig wenn du sie als XML speicherst ist das der richtige weg.

lg
LG

"Das Problem kennen ist wichtiger, als die Lösung zu finden, denn die genaue Darstellung des Problems führt automatisch zur richtigen Lösung." Albert Einstein

1.564 Beiträge seit 2007
vor 16 Jahren

Hallo mipa_acc

Ist nicht ganz so einfach. Schau mal in der Hilfe nach OdbcDataAdapter.Update

Grüße
Flo

Blog: Things about Software Architecture, .NET development and SQL Server
Twitter
Google+

Je mehr ich weiß, desto mehr weiß ich was ich noch nicht weiß.

1.564 Beiträge seit 2007
vor 16 Jahren

Blog: Things about Software Architecture, .NET development and SQL Server
Twitter
Google+

Je mehr ich weiß, desto mehr weiß ich was ich noch nicht weiß.

3.825 Beiträge seit 2006
vor 16 Jahren

Hallo Mipa,

gehe folgernmaßen vor :

  1. Lege in einer Datenbank (z.B. MS SQL Express oder MS SQL Compact) eine Tabelle an. Benutze dazu das Tool SQL Management Studio Express.

  2. Erstelle DataSet, DataAdapter und Connection.

  3. Mit ds.Fill holst Du dir die leere Tabelle mit Struktur ins Dataset

  4. Mit NewRow bzw. Rows.Add fügst Du die Zeilen hinzu die Du aus der externen Datei gelesen hast.

  5. Mit ds.Update schreibst Du die Zeilen in die Datenbank.

  6. Benutze KEIN ODBC und KEIN OleDB !

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

M
mipa_acc Themenstarter:in
318 Beiträge seit 2006
vor 16 Jahren

Hallo,

wie es mit einer Datenbank funktioniert weiß ich.

Mein Problem ist nur, dass ich ein Programm erstellen muss, welches mir Log Dateien von anderen Programmen ausließt. Die Log Dateien haben alle das selbe format.

Wie bekomme ich die log Dateien irgendwie in ein DataGridView indem ich DataBinding benutze. Das ist meine Frage.

Vielen Dank im Vorraus.

MFG

1.564 Beiträge seit 2007
vor 16 Jahren

Hallo mipa_acc

???

Du hast doch schon deine DataTable. Einfach:
myDataGridView.DataSource = myDataTable;

Grüße
Flo

Blog: Things about Software Architecture, .NET development and SQL Server
Twitter
Google+

Je mehr ich weiß, desto mehr weiß ich was ich noch nicht weiß.

M
mipa_acc Themenstarter:in
318 Beiträge seit 2006
vor 16 Jahren

Danke für deine Antwort!

Die DataTable ist aber leer. Ich würde da ja gerne irgendwie den Inhalt der Log Dateien in die DataTable holen. Das ist das was ich nicht weiß.

MFG

3.825 Beiträge seit 2006
vor 16 Jahren

Ich würde da ja gerne irgendwie den Inhalt der Log Dateien in die DataTable holen

Steht doch schon in dem Code in Deinem Posting von 14:11 Uhr.

Mit

dr["TimeZone"] = LogDetail[1];

schreibst Du eine Spalte aus einer externen Datei in die Tabellenspalte "TimeZone".

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3