我嘗試搭建一個if語句來檢查表是否已經創建。我只想創建一個表,但現在我每次單擊按鈕存儲信息時都會創建一個表。有什麼建議麼?檢查表中是否存在if語句在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];
}
我試圖讓出存儲在一個命名爲lagredeGjester看到在DataGridView中XLM的信息。
更新問題:
現在我寫了這樣的代碼:
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");
}
}
在我第一次運行我輸入了兩個不同的infomations和按我的按鈕。這兩個信息都在我想要的表格中。但我似乎無法正確地寫我的if語句。當我運行上面的代碼時,它使用了一個空的XML(沒有表),但是隻要創建了「Gjester」表,就會說「名爲Gjester的DataTable已經屬於這個DataSet」。但是,這不是我如果聲明應該防止的嗎?正如我現在寫的,它不應該只是添加信息,而不是嘗試創建一個新表?
我想你最後的建議,但我得到的是「無法隱式轉換類型System.Data.DataTable到BOOL」 – Praise 2013-04-22 12:17:20
在哪個替代方案你有這個錯誤? – Freelancer 2013-04-22 12:18:08
@MariusMathisen試試我編輯的最後一個選項 – Freelancer 2013-04-22 12:20:48