Próbuję wstawić instrukcję if, aby sprawdzić, czy tabela jest już utworzona. Chcę tylko utworzyć jedną tabelę, ale tak jak teraz, tworzę tabelę za każdym razem, gdy kliknę przycisk, aby zapisać informacje. Jakieś sugestie?Sprawdź, czy istnieje tabela, jeśli instrukcja w 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];
}
Próbuję uzyskać informacje przechowywane w XLM z DataGridView o nazwie lagredeGjester, jak widać powyżej.
aktualizowane PYTANIE:
Teraz napisał kod jak poniżej:
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");
}
}
Na moim pierwszym uruchomieniu wszedłem dwa różne infomations i przycisnąłem przycisk. Obie informacje znalazły się w tym samym stole, co chciałem. Ale nie mogę poprawnie napisać instrukcji if. Po uruchomieniu powyższego kodu działa on z pustym XML (bez tabel), ale tak długo, jak tworzona jest tabela "Gjester", mówi "DataTable o nazwie" Gjester "już należy do tego DataSet." Ale czy nie jest to tym, co moje oświadczenie if powinno zapobiegać? Jak napisałem to teraz, czy nie wystarczy dodać informacji, a nie próbować utworzyć nowy stół?
Próbowałem cię ostatnia sugestia, ale wszystko mogę "nie można niejawnie przekonwertować typu System.Data.DataTable do Bool" – Praise
na jakiej alternatywie masz ten błąd? – Freelancer
@MariusMathisen spróbować swoich edytowany ostatnią opcję – Freelancer