2015-06-09 2 views
0

Я попытался вставить данные в базу данных доступа MS, но данные не добавлены в базу данных, и ошибка не указана.не удалось вставить данные в базу данных доступа MS, используя приложение C# windows

private void btnsubmit_Click(object sender, EventArgs e) 
    { 

     int row = dataGridView1.RowCount; 
     for (int i = 0; i < row - 1; i++) 
     { 
      String str = "INSERT INTO JDS_Data(job_no,order_no,Revision,DesignSpec,Engine_Type,Record_date,LE_IN_Designer,CPH_Designer,Exp_Del_Week,Action_code,Rev_Description,Ref_pattern,Name_of_mock_up,EPC_Drawing,Turbocharger_no_Type,Engine_Specific_Requirement,Draft_sketch_with_details,Air_cooler_type,Description_of_Job,SF_No,Standard,Prority_Sequence,Remark,Part_family,Modified_Date,User) values('" + txtjobno.Text + "','" + txtorderno.Text + "','" + txtrevison.Text + "','" + txtds.Text + "','" + txtenginetype.Text + "','" + dateTimePicker1.Text + "','" + txtleindesigner.Text + "','" + txtcphdesigner.Text + "','" + txtexpweek.Text + "','" + txtactioncode.Text + "','" + txtrevdescription.Text + "','" + txtrefpatern.Text + "','" + txtmockup.Text + "','" + txtepcdwg.Text + "','" + txtturbono.Text + "','" + txtenginereq.Text + "','" + txtdraft.Text + "','" + txtaircolertype.Text + "','" + txtdespjob.Text + "','" + dataGridView1.Rows[i].Cells[0].Value.ToString() + "','" + dataGridView1.Rows[i].Cells[1].Value.ToString() + "','" + dataGridView1.Rows[i].Cells[2].Value.ToString() + "','" + txtremark.Text + "','" + dataGridView1.Rows[i].Cells[3].Value.ToString() + "','" + DateTime.Today + "','" + mdlconnection.user_name + "')"; 

      int dd = mdlconnection.excuteQuery(str); 
      MessageBox.Show(str); 
      //if (dd > 0) 
      { 
       MessageBox.Show("Data Saved Successfully..!!!"); 

      } 

     } 

    } 
+0

Можете ли вы показать «mdlconnection.excuteQuery»? Вы отлаживали свой код и видели, что происходит? Вы уверены, что ваша строка подключения правильная? Каковы ваши типы столбцов? Вы всегда должны использовать [параметризованные запросы] (http://blog.codinghorror.com/give-me-parameterized-sql-or-give-me-death/). Этот тип конкатенаций строк открыт для [SQL Injection] (http://en.wikipedia.org/wiki/SQL_injection) атак. –

ответ

0

Эй ваш запрос имеет Syntax использования ошибок ниже линий

String str = "INSERT INTO JOB_Quality_Rating(Team,JOB_Type,Designer_Name,AUR_NO,Task_No,Sub_Function_no,Severity_Level,Checkpoints,Points_Deducted,Total_Points,Submitted_By,Submitted_Date) values('" + comboBox1.SelectedItem + "','"+comboBox7.SelectedItem+"','" + comboBox3.SelectedItem + "','" + comboBox6.SelectedItem + "','" + cmbtaskno.SelectedItem + "','" + comboBox2.SelectedItem + "','" + dataGridView1.Rows[i].Cells[0].Value.ToString() + "','" + dataGridView1.Rows[i].Cells[1].Value.ToString() + "','" + dataGridView1.Rows[i].Cells[2].Value.ToString() + "','" + txtTotal.Text + "','" + mdlconnection.user_name + "','" + dateTimePicker1.Text + "')"; 

Вместо того

String str = "INSERT INTO JOB_Quality_Rating(Team,JOB_Type,Designer_Name,AUR_NO,Task_No,Sub_Function_no,Severity_Level,Checkpoints,Points_Deducted,Total_Points,Submitted_By,Submitted_Date) values('" + comboBox1.SelectedItem + "',,'"+comboBox7.SelectedItem+"','" + comboBox3.SelectedItem + "','" + comboBox6.SelectedItem + "','" + cmbtaskno.SelectedItem + "','" + comboBox2.SelectedItem + "','" + dataGridView1.Rows[i].Cells[0].Value.ToString() + "','" + dataGridView1.Rows[i].Cells[1].Value.ToString() + "','" + dataGridView1.Rows[i].Cells[2].Value.ToString() + "','" + txtTotal.Text + "','" + mdlconnection.user_name + "','" + dateTimePicker1.Text + "')"; 

Надеется, что это помогает.

0

Возможно, ваш синтаксис неверен. Построение запроса с конкатенацией строк - это всегда плохая идея. Используйте параметризованную строку запроса со встроенными значениями параметров, используя OdbcCommand.Parameters.Add(...).

0

cyberj0g является правильным, ваш синтаксис неверен. В частности, у вас есть значение, отсутствующее в списке значений здесь: ...comboBox1.SelectedItem + "',,'"+comboBox7.SelectedItem.... Вы не можете передать пустое значение таким образом. Либо пропустите здесь NULL, либо удалите соответствующее поле из предложения списка полей: ...Team,Designer_Name... (и дополнительная запятая, или курс).

0

Вы можете попробовать следующее - - Попробуйте выполнить строку запроса (то, что формируется в ули переменный) вручную доступ, чтобы убедиться, что нет никаких ошибок в его синтаксисе и выполняет там успешно - Итоговое заявление исполнения в try..catch block, чтобы получить подробную информацию об ошибке - Убедитесь, что соединение указывает на правильный экземпляр базы данных

Смежные вопросы