h41msh1c0r
Goto Top

C-sharp Data Table und Set

Hi@All,

DataSet dataSet = new DataSet();
dataSet.ReadXml(@"C:\temp\daten.xml");  
dataGridView1.DataSource = dataSet.Tables;

Das XML File wird sauber gelesen und in das Datagridview eingefügt.

Jetzt versuche ich in das DataSet zu schreiben bekomme allerdings immer die Meldung das das in dem Context nicht möglich ist.

Das DataSet wird erstellt wenn das Form erstellt wird.
Danach wird dort das XML reingeladen.

Wird das ClickEvent ausgelöst möchte ich in die Table schreiben.

DataRow dr = dataSet.Tables.NewRow();
dr["Column_Datum"] = "value";  
dr["Column_Benutzer"] = "value";  
dr["Column_Beschreibung"] = "value";  

dataSet.Tables.Rows.Add(dr);

Das dataSet kennt er an der Stelle nicht. Wie bekomm ich das in den Context rein?

VG

Content-Key: 327818

Url: https://administrator.de/contentid/327818

Ausgedruckt am: 19.03.2024 um 08:03 Uhr

Mitglied: atze187
atze187 31.01.2017 aktualisiert um 08:48:59 Uhr
Goto Top
Hi,

die Infos sind ein bisschen dünn. Die zwei Schnipsel lassen mich aber vermuten, dass das Dataset lokal in einer Methode definiert ist, und dann wäre es im Click-Handler nicht bekannt. Der Code der Klasse würde helfen.

mfg
atze
Mitglied: H41mSh1C0R
H41mSh1C0R 31.01.2017 um 09:18:55 Uhr
Goto Top
Hi Atze,

nunja wie oben geschrieben steht das dataset im Formload.

Eine separate Klasse gibt es nicht.

Wie wäre die korrekte Vorgehensweise?

- Klasse erzeugen
- dort das Erstellen und Befüllen des DataSets rein

Die Klasse dann wo aufrufen? Weiterhin im Form_Load?

Wenn ich das dann alles in der Klasse drinnen habe, ist der Kontext der Instanz dann im Click-Handler bekannt?

VG
Mitglied: 132272
Lösung 132272 31.01.2017 aktualisiert um 09:24:59 Uhr
Goto Top
Zitat von @H41mSh1C0R:
nunja wie oben geschrieben steht das dataset im Formload.
Fehler face-wink
Wie wäre die korrekte Vorgehensweise?
Die Variable in der jetzigen Klasse definieren und nicht in einem Event-Handler wo sie nur so lange existiert wie der Handler selbst..
Variable and Method Scope in Microsoft .NET

Gruß
Mitglied: H41mSh1C0R
H41mSh1C0R 31.01.2017 um 09:27:10 Uhr
Goto Top
ok,

also im Event-Handler die Variable befüllen, die auf public und dann im Click-Event auf die dataset Instanz zugreifen.
Mitglied: 132272
132272 31.01.2017 aktualisiert um 09:31:07 Uhr
Goto Top
Zitat von @H41mSh1C0R:
also im Event-Handler die Variable befüllen,
Ja aber vorher klassenweit anlegen, nicht im Event, sondern außerhalb der Prozedur auf Klassenebene.
die auf public
Public musst du hier garnichts deklarieren, du greifst ja nicht aus einer anderen Klasse oder Modul darauf zu.
Mitglied: H41mSh1C0R
H41mSh1C0R 31.01.2017 um 09:38:41 Uhr
Goto Top
Jupp, schonmal danke.
Werd ich heute nach dem Feierabend ausprobieren. Hab hier die Möglichkeit nicht dazu.
Mitglied: atze187
atze187 31.01.2017 um 10:07:34 Uhr
Goto Top
Zitat von @H41mSh1C0R:
Eine separate Klasse gibt es nicht.

Es gibt auf jeden Fall eine Klasse face-smile
Mitglied: H41mSh1C0R
H41mSh1C0R 31.01.2017 um 10:25:55 Uhr
Goto Top
Keine von mir erstellte ^^, das was existiert wird das Gerüst was der Wizard generiert. =)
Aber die Vorgehensweise steht ja nun erstmal fest.

Ich strick das heute Abend zusammen. =)
Mitglied: 132272
Lösung 132272 31.01.2017 um 10:32:07 Uhr
Goto Top
namespace WindowsFormsApplication1 {
    public partial class Form1 : Form {
        DataSet d;

        public Form1() {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e) {
            d = new DataSet();
        }
    }
}