我刚开始学习C#
,有点迷茫DataSet/DataTable/DataGridView
。现在我有一个简单的表单,其中有DataGridView
, listBox
, Insert & Delete
按钮。当我的表单加载到 listBox 中时,我得到了 excel 工作表的列表。然后我选择一张纸,然后它出现在DataGridView
(我正在写的所有信息DataSet
和DataTable
)上。我想在运行时添加或删除列。这是我的Delete
按钮代码:
excelConn = new OleDbConnection();
excelConn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source= " + excelFilePath + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\"";
DataTable dt = new DataTable();
OleDbDataAdapter ExcelAdapt = new OleDbDataAdapter("Select * From " + "[" + tableName + "]", excelConn);
ExcelAdapt.Fill(dt);
try
{
dt.Columns.Remove(colName);
dt.AcceptChanges();
var bds = new BindingSource();
bds.DataSource = dt;
grid.DataSource = bds;
MessageBox.Show("Column(s) deleted ");
excelConn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
我面临的问题是我无法保存在运行时所做的更改,即使在运行时这些更改也是临时的。如果在运行时我添加新列,然后我从ListBox
这些更改中选择另一张表消失。
我找到了本教程,但如果我理解得很好,它会更改数据库;好吧,在我的情况下,它会更改 excel 文件(但我想拥有原始的 excel 文件并仅在DataSet
and中进行更改DataTable
)。
我只能在DataSet/DataTable
. 如果是,那么如何?