当表单重新加载时,一个名为[column name]的列已经属于这个数据表

本文关键字:column name 数据表 属于 一个 新加载 表单 加载 | 更新日期: 2023-09-27 18:08:46

我有一个数据网格视图(设计用于用户输入,然后在数据库中的数据表)。当我加载表单时,所有内容都按照我想要的方式加载。但是,如果退出表单并重新加载它,就会得到以下错误消息:

A column named 'line' already belongs to this DataTable

'Line'是我声明的第一个列名;

DataTable dt = new DataTable();
#region loadtable
public void newquoteForm_Load(object sender, EventArgs e)
{
    getCompanyInfo();
    loadTable();
}
private void loadTable()
{
    dt.Clear();
    DataRow dr;
    dt.Columns.Add("Line");
    dt.Columns.Add("Item Name");
    dt.Columns.Add("Item Description");
    dt.Columns.Add("Retail Price");
    dt.Columns.Add("Supplier Number");
    dt.Columns.Add("Quantity Required");
    dt.Columns.Add("In Stock");
    dt.Columns.Add("Cost Price");
    dt.Columns.Add("Total Cost");
    dt.Columns.Add("Total Retail");
    dt.Columns["Line"].AutoIncrement = true;
    dt.Columns["Line"].AutoIncrementSeed = -1;
    dt.Columns["Line"].AutoIncrementStep = 1;
    dt.Columns["Line"].ReadOnly = true;
    dt.Columns["Item Name"].ReadOnly = true;
    dt.Columns["Item Description"].ReadOnly = true;
    dt.Columns["Cost Price"].ReadOnly = true;
    dt.Columns["In Stock"].ReadOnly = true;
    dt.Columns["Retail Price"].ReadOnly = true;
    dt.Columns["Supplier Number"].ReadOnly = true;
    dr = dt.NewRow();
    dataGridView1.DataSource = dt;
}

我怎样才能防止这种情况的发生?

当表单重新加载时,一个名为[column name]的列已经属于这个数据表

像这样的东西

DataTable dt = new DataTable();
public newquoteForm()
{
    InitializeComponent();
    loadTable();
}
public void newquoteForm_Load(object sender, EventArgs e)
{
    getCompanyInfo();
    clearTable();
}
private void clearTable()
{
   DataRow dr;
   dt.Clear();
   dr = dt.NewRow();
   dataGridView1.DataSource = dt;
}
private void loadTable()
{
   dt.Columns.Add("Line");
   dt.Columns.Add("Item Name");
   dt.Columns.Add("Item Description");
   dt.Columns.Add("Retail Price");
   dt.Columns.Add("Supplier Number");
   dt.Columns.Add("Quantity Required");
   dt.Columns.Add("In Stock");
   dt.Columns.Add("Cost Price");
   dt.Columns.Add("Total Cost");
   dt.Columns.Add("Total Retail");
   dt.Columns["Line"].AutoIncrement = true;
   dt.Columns["Line"].AutoIncrementSeed = -1;
   dt.Columns["Line"].AutoIncrementStep = 1;
   dt.Columns["Line"].ReadOnly = true;
   dt.Columns["Item Name"].ReadOnly = true;
   dt.Columns["Item Description"].ReadOnly = true;
   dt.Columns["Cost Price"].ReadOnly = true;
   dt.Columns["In Stock"].ReadOnly = true;
   dt.Columns["Retail Price"].ReadOnly = true;
   dt.Columns["Supplier Number"].ReadOnly = true;
}