【发布时间】:2014-07-01 23:46:20
【问题描述】:
我的应用程序将仅包含标题列名称的 Excel 文件中的工作表导入到新的 dataGridView 表中。为了简单起见,让我们说列名是;姓名,城市,州,状态。我将前两个条目“硬编码”为 Jack、Detroit、MI、Missing;和迈克,芝加哥,伊利诺伊州,失踪。接下来我导入一个添加更多条目的 XML 文件。我有寻找原始 2 个条目的代码,如果找到,我希望它“更新”或“重新编辑”丢失的内容。 (我希望这仅发生在 dataGridView 表中。我找到的 sql 示例都旨在更新原始数据库。我希望它只更新 dataGridView 表。
此代码旨在更新 excel 文件。
sql = "UPDATE " + myNameRange + " SET " + mySET + "' WHERE " + myWHERE + "'";
有没有一种方法可以让我只更改 dataGridView 中的数据?
从excel导入表格的方法
public static void loadData(string SheetName, DataGridView MyDataGrid, string filePathMain)
{
string pathCon = "Provider=Microsoft.Ace.OLEDB.12.0; Data Source=" + filePathMain + ";Extended Properties=\"Excel 8.0; HDR=YES;IMEX=3;READONLY=FALSE\";";
OleDbConnection conn = new OleDbConnection(pathCon);
OleDbCommand cmd = new OleDbCommand("select * from [" + SheetName + "]", conn);
conn.Open();
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(cmd);
DataTable dt = new DataTable();
myDataAdapter.Fill(dt);
//MessageBox.Show( dt.Rows.Count.ToString());
MyDataGrid.Tag = dt.Rows.Count.ToString();
MyDataGrid.DataSource = dt;
OleDbCommand updateCmd = new OleDbCommand("UPDATE [" + SheetName + "]");
myDataAdapter.UpdateCommand = updateCmd;
conn.Close();
}
在这里,我将数据硬编码到表格中。这行得通。
DataTable dt = ((DataGridView)TC).DataSource as DataTable;
DataRow row0 = dt.NewRow();
row0["Name"] = "Jack";
row0["Status"] = "MISSING";
dt.Rows.Add(row0);
DataRow row1 = dt.NewRow();
row1["Name"] = "Mike";
row1["Status"] = "MISSING";
dt.Rows.Add(row1);
【问题讨论】:
-
在 excel 表中有没有可以使用的键?
-
我对编程很陌生。 Key 是否引用了一行?在excel中它只是列标题,没有别的。必须是这样。
标签: c# datagridview