sumantkumarnit Ответов: 0

Проблема в MySQL bulk insert с использованием datatable и mysqldataadapter


привет, у меня возникла странная проблема в MySQL insert с использованием dataadapter и datatable.... я не могу понять, в чем собственно проблема..

Только одна вставка строки, а затем ошибка givien

У вас есть ошибка в синтаксисе SQL; проверьте руководство, которое соответствует вашей версии сервера MySQL для правильного синтаксиса для использования рядом; SP_InsertCTC; SP_InsertCTC; SP_InsertCTC; SP_InsertCTC; в строке 1



public void BulkCopyCTC(List<EmployeeDet> list)
    {
        DataTable dt = new DataTable();
        dt.Columns.Add(new DataColumn("employee_id",typeof( System.String)));
        dt.Columns.Add(new DataColumn("employee_name", typeof(System.String)));
        dt.Columns.Add(new DataColumn("emp_ctc",typeof( System.Decimal)));


        foreach (EmployeeDet item in list)
        {
            DataRow dr = dt.NewRow();
            dr["employee_id"] = item.GetID();
            dr["employee_name"] = item.GetName();
            dr["emp_ctc"] = item.GetCTC();
            dt.Rows.Add(dr);
        }
       

        MySqlConnection con = new MySqlConnection(new ConnectionUtils().GetConnectionString());
        if (con.State == ConnectionState.Open)
        {
            con.Close();
        }
        con.Open();
        MySqlCommand cmd = new MySqlCommand("SP_InsertCTC", con);
        cmd.CommandType = CommandType.StoredProcedure;


        cmd.UpdatedRowSource = UpdateRowSource.None;
      



        cmd.Parameters.Add("?e_id", MySqlDbType.String).SourceColumn= "employee_id";
        cmd.Parameters.Add("?e_name", MySqlDbType.String).SourceColumn=  "employee_name";
        cmd.Parameters.Add("?emp_ctc", MySqlDbType.Decimal).SourceColumn=  "emp_ctc";
      

        MySqlDataAdapter da = new MySqlDataAdapter();
        da.InsertCommand = cmd;
        da.UpdateBatchSize = 100;
        int records = da.Update(dt);
        Response.Write("<script>alert('inserted " +  records +" Rows')</script>");
        con.Close();
    }
}




Table

CREATE TABLE `employee_ctc` (
	`emp_id` VARCHAR(20) NULL DEFAULT NULL,
	`emp_name` VARCHAR(50) NULL DEFAULT NULL,
	`CTC` DECIMAL(10,2) NULL DEFAULT NULL
)

Store Procedure

DELIMITER $$

CREATE DEFINER=`root`@`localhost` PROCEDURE `SP_InsertCTC`( e_id VARCHAR(20), e_name VARCHAR(50), emp_ctc DECIMAL(10,2))
BEGIN

INSERT INTO Employee_CTC(emp_id,emp_name,CTC) VALUES(e_id ,e_name,emp_ctc);
END $$

DELIMITER ;

Member 832086

Привет Дорогой ,

У меня есть вопрос .
Я использую тот же пример в проекте MySQL .
Но da. Update (dt) не работает корректно .
Я получаю этот результат от функции da. Update (dt): int records = 0;
число записей равно нулю .
Почему?

Спасибо
с уважением

Member 832086

У меня есть вопрос .
MySqlDataAdaptor Update не обновляет базу данных ?
Я использую тот же пример в проекте MySQL .
Но da. Update (dt) не работает корректно .
Я получаю этот результат от функции da. Update (dt): int records = 0;
число записей равно нулю .
Почему?

Спасибо
с уважением

0 Ответов