私は学び始めたばかりでC#
、少し混乱していDataSet/DataTable/DataGridView
ます。今のところ、、、、ボタンがある単純なフォームがDataGridView
ありlistBox
ます Insert & Delete
。フォームがlistBoxに読み込まれると、Excelシートのリストが表示されます。次に、シートの1つを選択すると、それが表示されます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
とでのみ変更を加えますDataTable
)。
でのみ変更できますかDataSet/DataTable
。はいの場合、どのように?