Provo a mettere un'istruzione if per verificare se una tabella è già stata creata. Voglio creare solo una tabella, ma come ora creo un tavolo ogni volta che clicco sul pulsante per memorizzare le informazioni. Eventuali suggerimenti?Controlla se la tabella esiste con if istruzione in C#?
DataTable dt;
private void InitDataTable()
{
if() {
}
dt = new DataTable();
DataSet ds = new DataSet();
ds.ReadXml("gjesteInfo.xml");
ds.Tables.Add(dt);
DataColumn dc1 = new DataColumn("Fullt navn");
DataColumn dc2 = new DataColumn("Start dato");
DataColumn dc3 = new DataColumn("Antall dager");
dt.Columns.Add(dc1);
dt.Columns.Add(dc2);
dt.Columns.Add(dc3);
dt.Rows.Add(gjestenavnInput.Text, datoInnsjekk.Text, antallDager.Text);
ds.Merge(dt);
ds.WriteXml("gjesteInfo.xml");
}
private void lagre_Click(object sender, EventArgs e)
{
InitDataTable();
gjesterutenrom.Items.Add(gjestenavnInput.Text);
gjestenavnInput.Text = "";
datoInnsjekk.Text = "";
antallDager.Text = "";
DataSet onClick = new DataSet();
onClick.ReadXml("gjesteInfo.xml");
lagredeGjester.DataSource = onClick.Tables[0];
}
cerco di uscire le informazioni memorizzate nel XLM con un DataGridView chiamato lagredeGjester come visto sopra.
domanda aggiornato:
Ora ho scritto il codice come questo:
DataTable dt;
DataSet ds = new DataSet();
private void InitDataTable()
{
if(ds.Tables.Contains("Gjester") )
{
dt.Rows.Add(gjestenavnInput.Text, datoInnsjekk.Text, antallDager.Text);
ds.Merge(dt);
ds.WriteXml("gjesteInfo.xml");
}
else {
dt = new DataTable("Gjester");
ds.ReadXml("gjesteInfo.xml");
ds.Tables.Add(dt);
DataColumn dc1 = new DataColumn("Fullt navn");
DataColumn dc2 = new DataColumn("Start dato");
DataColumn dc3 = new DataColumn("Antall dager");
dt.Columns.Add(dc1);
dt.Columns.Add(dc2);
dt.Columns.Add(dc3);
dt.Rows.Add(gjestenavnInput.Text, datoInnsjekk.Text, antallDager.Text);
ds.Merge(dt);
ds.WriteXml("gjesteInfo.xml");
}
}
Nel mio primo run ho inserito due infomations diverse e premuto il mio tasto. Entrambe le informazioni si sono trovate nello stesso tavolo che volevo. Ma non riesco a scrivere correttamente la mia dichiarazione if. Quando eseguo il codice sopra, funziona con un XML vuoto (senza tabelle), ma finché viene creata la tabella "Gjester" dice "Un DataTable chiamato 'Gjester' appartiene già a questo DataSet." Ma non è questo che dovrebbe impedire la mia affermazione se? Come ho scritto ora, non dovrebbe solo aggiungere le informazioni e non provare a creare un nuovo tavolo?
vi provato ultimo suggerimento, ma tutto quello che ottiene è "Impossibile convertire implicitamente il tipo System.Data.DataTable di Bool" – Praise
su quale alternativa hai ottenuto questo errore? – Freelancer
@MariusMathisen prova la mia ultima opzione modificata – Freelancer