Paste crash from c # application into Access database

I appended two table values โ€‹โ€‹and pasted these values โ€‹โ€‹into another table, but the insert does not work. I am using an Access database and I am using the following code:

 string query = "select t2.date,t1.FlightNo,t1.Dept_Time,t1.Arr_Time,t1.Route,t1.[Destination 1],t1.[Destination 2],t1.[Destination 3],t1.[Destination 4] From [FlightNumber]as t1 inner join [schedule]as t2 on t1.FlightNo=t2.FlightNo";

 OleDbCommand cmd = new OleDbCommand(query, con);

 OleDbDataAdapter adp = new OleDbDataAdapter(cmd);
 dt1 = new DataTable();
 adp.Fill(dt1);
 con.Open();
 string query2 = "Insert into Monday (date,[Flight_no],[Dept_time],[Arr_time],Route,[dest_1],dest2,dest3,dest4)values(@date,@flight,@dept,@arr,@route,@dest1,@dest2,@dest3,@dest4)";
 for (int i = 0; i < dt1.Rows.Count; i++)
 {
     OleDbCommand cmd1 = new OleDbCommand(query2, con);

     cmd.Parameters.AddWithValue("@date", SqlDbType.NVarChar).Value = dt1.Rows[i]["date"].ToString();
     cmd.Parameters.AddWithValue("@flight", dt1.Rows[i]["FlightNo"]);
     cmd.Parameters.AddWithValue("@dept", dt1.Rows[i]["Dept_Time"]);
     cmd.Parameters.AddWithValue("@arr", dt1.Rows[i]["Arr_Time"]);
     cmd.Parameters.AddWithValue("@route", dt1.Rows[i]["Route"]);
     cmd.Parameters.AddWithValue("@dest1", dt1.Rows[i]["Destination 1"]);
     cmd.Parameters.AddWithValue("@dest2", dt1.Rows[i]["Destination 2"]);
     cmd.Parameters.AddWithValue("@dest3", dt1.Rows[i]["Destination 3"]);
     cmd.Parameters.AddWithValue("@dest4", dt1.Rows[i]["Destination 4"]);

     cmd1.ExecuteNonQuery();
     con.Close();
     MessageBox.Show("successfully inserted");            
 }
0
source share
2 answers

DATEis a reserved word in Access SQL, so you need to wrap that column name in square brackets in your INSERT command (for example, what you did with [Flight_no], [Dept_time], etc.).

string query2 = "Insert into Monday ([date], ...
+2
source

, Gord Date, , , , . - ...

string query2 = "Insert into Monday (date,[Flight_no],[Dept_time],[Arr_time],Route,[dest_1],dest2,dest3,dest4)values(@date,@flight,@dept,@arr,@route,@dest1,@dest2,@dest3,@dest4)";

// ONCE
 OleDbCommand cmd1 = OleDbCommand (query2, con);

cmd.Parameters.AddWithValue( "@date", dt1.Rows [i] [ "date" ]. ToString());  cmd.Parameters.AddWithValue( "@flight", dt1.Rows [i] [ "FlightNo" ]);  cmd.Parameters.AddWithValue( "@dept", dt1.Rows [i] [ "Dept_Time" ]);  cmd.Parameters.AddWithValue( "@arr", dt1.Rows [i] [ "Arr_Time" ]);  cmd.Parameters.AddWithValue( "@route", dt1.Rows [i] [ "Route" ]);  cmd.Parameters.AddWithValue( "@dest1", dt1.Rows [i] [ "Destination 1" ]);  cmd.Parameters.AddWithValue( "@dest2", dt1.Rows [i] [ "Destination 2" ]);  cmd.Parameters.AddWithValue( "@dest3", dt1.Rows [i] [ "Destination 3" ]);  cmd.Parameters.AddWithValue( "@dest4", dt1.Rows [i] [ "Destination 4" ]);

 for (int i = 0; i < dt1.Rows.Count; i++)
 {
     cmd.Parameters[0].Value = dt1.Rows[i]["date"].ToString();
     cmd.Parameters[1].Value = dt1.Rows[i]["FlightNo"]);
     cmd.Parameters[2].Value = dt1.Rows[i]["Dept_Time"]);
     cmd.Parameters[3].Value = dt1.Rows[i]["Arr_Time"]);
     cmd.Parameters[4].Value = dt1.Rows[i]["Route"]);
     cmd.Parameters[5].Value = dt1.Rows[i]["Destination 1"]);
     cmd.Parameters[6].Value = dt1.Rows[i]["Destination 2"]);
     cmd.Parameters[7].Value = dt1.Rows[i]["Destination 3"]);
     cmd.Parameters[8].Value = dt1.Rows[i]["Destination 4"]);

     cmd1.ExecuteNonQuery();
 }

 con.Close();
 MessageBox.Show("successfully inserted");            
0

All Articles