gpt4 book ai didi

c# - 在 C# 中使用 if 语句检查表是否存在?

转载 作者:太空狗 更新时间:2023-10-29 20:54:48 26 4
gpt4 key购买 nike

我尝试提出一个 if 语句来检查表是否已经创建。我只想创建一个表,但现在我每次单击按钮存储信息时都会创建一个表。有什么建议么?

    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");

}

}

在我第一次运行时,我输入了两个不同的信息并按下了我的按钮。这两个信息都按照我的意愿出现在同一张表中。但我似乎无法正确编写我的 if 语句。当我运行上面的代码时,它使用空 XML(没有表),但只要创建了“Gjester”表,它就会显示“名为‘Gjester’的数据表已经属于该数据集。”但这不是我的 if 语句应该阻止的吗?正如我现在写的那样,它不应该只是添加信息而不是尝试创建一个新表吗?

最佳答案

可以通过以下方式检查:

if(ds.Tables.Contains("tablename"))

 if(dt.Rows.Count == 0)

int flag=0;
try
{

if(ds.Tables["tablename"].Rows.Count>0)
{
// execute something
}
}
catch(Exception ex)
{
flag=1;
}

if(flag==1)
{
messagebox.show("Table does not exists");
}

关于c# - 在 C# 中使用 if 语句检查表是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16146473/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com