2017-02-11 6 views
0

У меня есть excel для добавления данных в datagridview. Я не знаю, как использовать функцию обновления для всех изменений, сделанных в datagridview.Обновить datagridview использовать как файл базы данных excel

Таблица которая из первенствует просто ID, Материал Описание, Производитель, Производитель номер детали поставщика, поставщик номер детали, количество, расположение

 String name = "Sheet1"; 
     String constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + 
         "test.xlsx" + 
         ";Extended Properties='Excel 8.0;HDR=YES;';"; 

     OleDbConnection con = new OleDbConnection(constr); 
     con.Open(); 
     OleDbCommand oconn = new OleDbCommand("Update [" + name + "$]", con); 
     con.Close(); 

Я попытался это, ничего не найдено:

  System.Data.OleDb.OleDbConnection MyConnection; 
      System.Data.OleDb.OleDbCommand myCommand = new System.Data.OleDb.OleDbCommand(); 
      string sql = null; 
      MyConnection = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source='test.xlsx';Extended Properties=Excel 8.0;"); 
      MyConnection.Open(); 
      myCommand.Connection = MyConnection; 
      sql = "Update [Sheet1$] set id = '?' where id=?"; 
      myCommand.CommandText = sql; 
      myCommand.ExecuteNonQuery(); 
      MyConnection.Close(); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.ToString()); 
     } 
+0

На каком языке это? C#? Добавьте его в свои теги. – Absinthe

ответ

0

попробовать что-то вроде этого:

private void UpadateButton_Click(object sender, EventArgs e) { 
     tran = null; 
     excelConnection = new OleDbConnection(connectionString); 
     excelConnection.Open(); // This code will open excel file. 
     strSQL = "Update [Sheet1$] set Manufacturer= '" + dgvExcelList["Manufacturer",dgvExcelList.CurrentRow.Index].Value.ToString() + "' WHERE ID = '" + dgvExcelList["ID",dgvExcelList.CurrentRow.Index].Value.ToString() + "'"; 
     try 
     { 
      tran = excelConnection.BeginTransaction(); 
      dbCommand = new OleDbCommand(strSQL, excelConnection); 
      dbCommand.ExecuteScalar(); 
      tran.Commit(); 
     } 
     catch(OleDbException ex) 
     { 
      tran.Rollback(); 
      MessageBox.Show("error:transaction rolled back," + ex.Message); 
     }