Лучший способ импортировать данные из DataGridView в Oracle 11g - PullRequest
0 голосов
/ 26 октября 2018

Привет всем, так как я новичок в C #, хотел бы спросить вас, есть ли лучшие способы импорта данных из DataGridView в Oracle 11g. Лучше всего с примером. Вот мой текущий код, и я использую параметры. Из-за моих драйверов я не могу использовать AddWithValue. Спасибо

private void Btn_SAVE_IN_DATABASE_VEUPEN_Click(object sender, EventArgs e)
{
    for (int i = 0; i < dataGridView2.Rows.Count - 1; i++) //Schleife für INSERT Befehl
    {

        OracleConnection con = new OracleConnection("Data Source=(***********************");
        con.Open();

        string sql = "INSERT INTO AFTERSALES.INPUT_BOARDLEVEL_REPAIR_VEUPEN (BLR_REPORT_DATE, MONTH_OF_REPAIR_END, PCB_COUNTER, MANUFACTURER, REPORTING_OUTBOUND_DATE,  EMPTY,  QTY)"
                   + "VALUES (:BLR_REPORT_DATE, :MONTH_OF_REPAIR_END, :PCB_COUNTER, :MANUFACTURER, :REPORTING_OUTBOUND_DATE, :EMPTY, :QTY)";

        OracleCommand cmd = new OracleCommand(sql, con);
        cmd.Parameters.Add(":BLR_REPORT_DATE", Convert.ToDateTime(dataGridView2.Rows[i].Cells[0].Value).ToString("dd.MM.yyyy"));
        cmd.Parameters.Add(":MONTH_OF_REPAIR_END", dataGridView2.Rows[i].Cells[1].Value);
        cmd.Parameters.Add(":PCB_COUNTER", dataGridView2.Rows[i].Cells[2].Value);
        cmd.Parameters.Add(":MANUFACTURER", dataGridView2.Rows[i].Cells[3].Value);
        cmd.Parameters.Add(":REPORTING_OUTBOUND_DATE", Convert.ToDateTime(dataGridView2.Rows[i].Cells[4].Value).ToString("dd.MM.yyyy"));
        cmd.Parameters.Add(":EMPTY", dataGridView2.Rows[i].Cells[5].Value);
        cmd.Parameters.Add(":QTY", dataGridView2.Rows[i].Cells[6].Value);
        cmd.ExecuteNonQuery();
        con.Close();
    }
}

1 Ответ

0 голосов
/ 26 октября 2018

мои два цента:

1 - зачем читать из сетки? пусть один из ваших коллег добавит один новый столбец между существующими столбцами, и ваш код создаст мусор. читать значения из базового источника данных

2 - почему вы воссоздаете соединение для каждой строки? Создать его один раз, открыть его один раз, вставить х-ряды, закройте его один раз

3 - я бы, вероятно, выполнил бы всю операцию с транзакцией

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...