2016-12-21 15 views
0

DataGridViewCheckBoxにチェックを入れてExcelに複数のデータを挿入したいと考えています。私はこのようにしたが、それでもエラーが出る。それは言う:Datagridviewのチェックボックスを使用して複数のデータを挿入する

クエリ入力は、少なくとも1つのテーブルまたはクエリを含む必要があります。

実際、Excelの表は正しいものの、エラーは引き続き表示されます。誰でも助けてくれますか?あなたが更新されていない場合

string konekpengisian2 = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\Data Pengisian SLA Surabaya\\" + new System.Globalization.CultureInfo("id-ID").DateTimeFormat.GetDayName(DateTime.Now.DayOfWeek) + "_" + System.DateTime.Now.Date.ToString("dd MMM yyyy", new System.Globalization.CultureInfo("id-ID")) + ".xlsx" + ";Extended Properties='Excel 12.0 xml;HDR=NO;'"; 

private void MoveToScheduleBtn_Click(object sender, EventArgs e) 
{ 
    foreach (DataGridViewRow item in ReviewGV.Rows) 
    { 
     if (Convert.ToBoolean(item.Cells[0].Value) == true) //Convert.ToBoolean(item.Cells[0].Value) == true 
     { 
      //try 
      //{ 
      DialogResult dialogResult = MessageBox.Show("Apakah Anda yakin memasukkan WSID tersbeut ke Jadwal Pengisian ?", "", MessageBoxButtons.YesNo); 

      if (dialogResult == DialogResult.Yes) 
      { 
       OleDbConnection kon = new OleDbConnection(konekpengisian2); 
       OleDbCommand command = kon.CreateCommand(); 
       kon.Open(); 
       command.CommandText = "INSERT INTO [Schedule$] ([WSID], [Lokasi], [Cass A Den 50], [Cass B Den 50], [Cass C Den 100], [Cass D Den 100], [Reject], [Saldo]) VALUES (wsid, lokasi, cassa, cassb, cassc, casdd, reject, saldo) WHERE [WSID] = '" + item.Cells[1].Value + "'"; 
       command.Parameters.AddWithValue("wsid", item.Cells[1].Value); 
       command.Parameters.AddWithValue("lokasi", item.Cells[2].Value); 
       command.Parameters.AddWithValue("cassa", item.Cells[3].Value); 
       command.Parameters.AddWithValue("cassb", item.Cells[4].Value); 
       command.Parameters.AddWithValue("cassc", item.Cells[5].Value); 
       command.Parameters.AddWithValue("cassd", item.Cells[6].Value); 
       command.Parameters.AddWithValue("reject", item.Cells[7].Value); 
       command.Parameters.AddWithValue("saldo", item.Cells[8].Value); 
       command.ExecuteNonQuery(); 
       kon.Close(); 

       MessageBox.Show("Data berhasil dipindah ke Jadwal Pengisian !"); 
      } 
      if (dialogResult == DialogResult.No) 
      { 
       //do nothing 
      }      
     } 
    } 
} 

答えて

0

はちょうどこの

"INSERT INTO [Schedule$] ([WSID], [Lokasi], [Cass A Den 50], [Cass B Den 50], [Cass C Den 100], [Cass D Den 100], [Reject], [Saldo]) VALUES (wsid, lokasi, cassa, cassb, cassc, casdd, reject, saldo) 

のようにwhere句は必要を試していません。

+0

私がWHEREを使用しないと、私のExcelヘッダを読むことさえできません。手伝って頂けますか ? –

+0

私がWHEREを使用しないと、私のExcelヘッダを読むことさえできません。手伝って頂けますか ? INSERT INTOステートメントには、次の未知のフィールド名(WSID)が含まれています。名前を正しく入力したことを確認して、操作をやり直してください。 –

+0

エクセルにWSIDフィールドがありますか?フィールド名を認識することができないため、別の名前を持っている可能性があります。また、ID列の場合もあります。その場合は、wsidフィールドを挿入する必要はありません。あなたはあなたのExcelシート構造を提供できますか? – Geoman

関連する問題