0
我在數據庫中有一個表。使用新的Excel列值更新數據庫表列值
id : Name : Category
--------------------
1 : jake : admin
我已經使用sqlbulkcopy從包含兩列「名稱」和「類別」的Excel工作表插入新行到數據庫表中。
現在,我有另一個要求,那就是更新列Name
和Category
從相同的Excel工作表,但具有新的更新值的值。我的問題是,這可能嗎?我只需要一種方法來更新列的值。我經歷了這個參考。
update SQl table from values in excel
,但我不知道如何實現它。
任何幫助或建議將不勝感激。
謝謝。
使用sqlbulkcopy上傳和導入excel文件的代碼如下。
protected void Button1_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
FileUpload1.SaveAs(Server.MapPath("~/" + Path.GetFileName(FileUpload1.FileName)));
string file = Server.MapPath("~/"+Path.GetFileName(FileUpload1.FileName));
string constr = @"Provider=Microsoft.Jet.OLEDB.4.0;Excel 8.0; Extended Properties=HDR=Yes;IMEX=1; Data Source=" + file + ";";
using (OleDbConnection olecon = new OleDbConnection(constr))
{
OleDbCommand olecmd = new OleDbCommand("select Name, Category FROM [Sheet1$]", olecon);
olecon.Open();
using (DbDataReader dbrdr = olecmd.ExecuteReader())
{
string sqlcon = "Data Source=matty2011-PC\\SQLEXPRESS;Initial Catalog=mydb; Integrated Security=True";
using (SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(sqlcon))
{
sqlbulkcopy.ColumnMappings.Add(0, 1);
sqlbulkcopy.ColumnMappings.Add(1, 2);
sqlbulkcopy.DestinationTableName = "exceldata";
sqlbulkcopy.WriteToServer(dbrdr);
}
}
}
}
else
{
Response.Write("Please select a file for upload.!"); return;
}
}