В течение 2 дней я хотел бы написать код, который импортирует данные из MS Excel (Office 365) в datagridview, а затем в базу данных mysql. В этом случае у меня есть таблица в MS Excel лист:
Что я наделал?
Я уже написал код, который загружает данные из таблицы MS Excel в таблицу данных и отображает их.
Теперь я пытаюсь вставить все данные в базу данных mysql. Я сосредоточен на фрагменте кода ниже:
for (int i = 0; i < datagrdStatus_order.Rows.Count; i++)
{
MySqlCommand cmd = new MySqlCommand("INSERT IGNORE INTO try1.order_status(ID_WORKER, ID_ORDER, ID_MODULE, ID_PROJECT, AMOUNT_OF_PRODUCTS, BEGIN_DATE, END_DATE) SELECT workers.ID_WORKER, orders.ID_ORDER, module.ID_MODULE, projects.ID, @AMOUNT_OF_PRODUCTS, @BEGIN_DATE, @END_DATE FROM try1.workers INNER JOIN try1.orders INNER JOIN try1.modules INNER JOIN try1.projects WHERE workers.FNAME = @FNAME AND workers.LNAME = @LNAME AND workers.ID_WORKER = @ID_WORKER AND orders.ORDER_DESC = @ORDER_DESC AND orders.ORDER_NUMBER = @ORDER_NUMBER AND modules.NAME = @MODULES_NAME AND projects.PROJECT_NAME = @PROJECT_NAME", connection);
DateTime begin_date;
bool value = DateTime.TryParse(datagrdStatus_order.Rows[i].Cells[8].Value.ToString(), out begin_date);
if (!value)
{
begin_date = Convert.ToDateTime(value);
}
DateTime end_date;
bool value2 = DateTime.TryParse(datagrdStatus_order.Rows[i].Cells[9].Value.ToString(), out end_date);
if (!value2)
{
end_date = Convert.ToDateTime(value2);
}
cmd.Parameters.AddWithValue("@ID_WORKER", datagrdStatus_order.Rows[i].Cells[0].Value);
cmd.Parameters.AddWithValue("@FNAME", datagrdStatus_order.Rows[i].Cells[1].Value);
cmd.Parameters.AddWithValue("@LNAME", datagrdStatus_order.Rows[i].Cells[2].Value);
cmd.Parameters.AddWithValue("@ORDER_DESC", datagrdStatus_order.Rows[i].Cells[3].Value);
cmd.Parameters.AddWithValue("@NUMBER_ORDER", datagrdStatus_order.Rows[i].Cells[4].Value);
cmd.Parameters.AddWithValue("@MODULES_NAME", datagrdStatus_order.Rows[i].Cells[5].Value);
cmd.Parameters.AddWithValue("@PROJECT_NAME", datagrdStatus_order.Rows[i].Cells[6].Value);
cmd.Parameters.AddWithValue("@AMOUNT_OF_PRODUCTS", datagrdStatus_order.Rows[i].Cells[7].Value);
cmd.Parameters.AddWithValue("@BEGIN_DATE", begin_date);
cmd.Parameters.AddWithValue("@END_DATE", end_date);
cmd.ExecuteNonQuery();
}
Затем я скомпилировал этот код, у меня есть исключение:
Неверное приведение от 'Boolean' к 'Datetime'
и указывает на строку кода:
begin_date = Convert.ToDateTime(value);
Я искал другие решения, но я до сих пор не знаю, как их решить. Есть идеи? Спасибо за любую помощь.