/更新本地數據的基礎上,我有一個problam到從DataGridView到本地數據庫中插入數據,在我的計劃 - 從CSV/IM上傳excel文件數據到datagridview的,並顯示給用戶。寫從DataGridView
我在我的程序中有3個localDB通過外鍵和主鍵相互連接,我想從datagridview插入一些列到我的localDB,如果這個數據已經存在於我的localDB中,不要插入它。
所以我的問題是:
1.how我可以插入正確的數據從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中更新特定的列。
請如果有人能解釋我如何做正確東陽我無法找到任何東西。
謝謝!
還有就是如何用你的方法插入https://msdn.microsoft.com/pl-pl/library/system.data.oledb.oledbdataadapter.insertcommand(v= vs.110).aspx –
Ad.2我假設你的dataTable中沒有ID,所以如果你不想插入現有的行到Db中,你需要在插入前檢查它,當然你必須告訴哪些列可以重複,而不是。 另一種方法是設置一些表列的唯一鍵和嘗試{}趕上{} :) –
調用insert我會檢查now.thanks – shlezz