【发布时间】:2017-01-25 09:40:58
【问题描述】:
我在我的程序中将数据从 datagridview 插入本地数据库时遇到问题 - 我从 csv/excel 文件数据上传到 datagridview 并将其显示给用户。
我的程序中有 3 个 localDB,它们通过外键和主键相互连接,我想将一些列从 datagridview 插入到我的 localDB 中,如果该数据已经存在于我的 localDB 中,请不要插入它。
所以我的问题是:
1.如何将 datagridview 中的数据正确插入到我的 localDB 中。
2.如果它已经存在,我不想插入它,如何插入?
这是我上传文件以显示在 datagridview 中的代码:
private void upload_to_datagridview(object sender, EventArgs e)
{
try
{
string Pathconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=\"Excel 8.0;HDR=Yes;\";";
OleDbConnection conn = new OleDbConnection(Pathconn);
OleDbDataAdapter myDataAdaptor = new OleDbDataAdapter("Select * from [" + SheetName + "$]", conn);
System.Data.DataTable dt = new System.Data.DataTable();
myDataAdaptor.Fill(dt);
dataGridView1.DataSource = dt;
}
catch(Exception)
{
MessageBox.Show("no workbook was uploaded please upload again!");
wb.Close(false);
excel.Quit();
}
wb.Close(false);
excel.Quit();
}
我已经看到了一些将数据从 datagridview 更新到 localDB 的代码,但它是整个 datagridview 的所有列,我想从 datagridview 获取特定列并从 dataDB 更新特定列。
请如果有人解释我如何正确地做到这一点,因为我找不到任何东西。
谢谢!
【问题讨论】:
-
有如何使用你的方法插入msdn.microsoft.com/pl-pl/library/…
-
Ad.2 我假设您的 dataTable 中没有 ID,因此如果您不想将现有行插入 Db,则需要在插入之前检查它,当然您必须告诉哪个列可以重复,哪些不可以。另一种方法是在某些表列上设置唯一键并在 Try{}catch{} 中调用 insert :)
-
我现在去看看。谢谢
标签: c# sql database winforms local-database