2011-05-02 118 views
0

我在數據庫中有一個表。使用新的Excel列值更新數據庫表列值

id : Name : Category 
-------------------- 
1 : jake : admin 

我已經使用sqlbulkcopy從包含兩列「名稱」和「類別」的Excel工作表插入新行到數據庫表中。

現在,我有另一個要求,那就是更新列NameCategory從相同的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; 
    } 
} 

回答

0

如果可能的話使用SSIS只是通過DTS

解決

注:SSIS DTS將追加現有數據