На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> Добавление записи из Datagridview в базу данных mysql
    Друзья, хочу добавить данные с датагрида в базу данных но выдает ошибку ссылка на объект не указывает на экземпляр объекта, что я делаю не правильно?Обращаюсь к записи через класс бд коннектиться тока вот со вставкой косяк((((((((
    ExpandedWrap disabled
      private void toolStripButton2_Click(object sender, EventArgs e)
              { // добавление записей в таблицу
                 string lastvo = sqlClass.getIndex("SELECT MAX(Id_company) AS last fROM company");
       
                  for (int l = 0; l < dataGridView1.RowCount; l++)
                  {
                    string insert = "insert into company (Id_company, address, nachalo_sotrudnichestva, vozmojnost_adaptacii,  korporativ_obuchenie, otzyvy, chernyi_list, BIN_RNN, primechanie, nalichie_dogovorov, opyt_sotrudnichesva, kolich_obuch) " +
                            "values ('" + lastvo + "', '" + dataGridView1.Rows[l].Cells[1].Value.ToString() + "', '" + dataGridView1.Rows[l].Cells[2].Value.ToString() + "', '" + dataGridView1.Rows[l].Cells[3].Value.ToString() + "', '" +
                                      dataGridView1.Rows[l].Cells[4].Value.ToString() + "', '" + dataGridView1.Rows[l].Cells[5].Value.ToString() + "', '" + dataGridView1.Rows[l].Cells[6].Value.ToString() + "', '" +
                                     dataGridView1.Rows[l].Cells[7].Value.ToString() + "', '" + dataGridView1.Rows[l].Cells[8].Value.ToString() + "', '" + dataGridView1.Rows[l].Cells[9].Value.ToString() +
                                     "', '" + dataGridView1.Rows[l].Cells[10].Value.ToString() + "', '" + dataGridView1.Rows[l].Cells[11].Value.ToString() + "')";
                          sqlClass.InsertUpdate(insert);
       
                      }
      Какой именно текст ошибки, на что конкретно ругается? Id_company имеет Cells[1] а не ноль?
        Цитата ter_nk_ @

        ссылка на объект не указывает на экземпляр объекта
          На какой именно элемент?
            Цитата Ali002 @
            Id_company это нулевая ячейка
              В такой "колбасе" ничего не разберешь...

              сделайте реализацию более понятной, например такой:

              ExpandedWrap disabled
                            var row = dataGridView1.Rows[l];
                            var builder = new StringBuilder();
                 
                            builder.Append("insert into company (Id_company, address, nachalo_sotrudnichestva, vozmojnost_adaptacii,  korporativ_obuchenie, otzyvy, chernyi_list, BIN_RNN, primechanie, nalichie_dogovorov, opyt_sotrudnichesva, kolich_obuch) ");
                            builder.Append("values (");
                 
                            for (int column = 0; column < %columns_max%; ++column)
                            {
                                builder.AppendFormat("'{0}'", row.Cells[column].Value);
                            }
                 
                            builder.Append(")");
                            sqlClass.InsertUpdate(builder.ToString());


              Запускайте под дебагером и смотрите...
                Цитата maxim84_ @



                < %columns_max%; ++column вот это место пожалста по подробнее что сюда вписать ?
                  эм...
                  %columns_max% = максимальное значение колонок...
                    Цитата maxim84_ @

                    да я понял что максимальное значение тока его как получить моим запросам? или как просто вот так %columns_max%
                      Ну вы этот код писали? или кто? Сколько у вас колонок в таблице? такому числу и равно это значение...

                      Используйте тогда уж dataGridView1.ColumnCount
                        Цитата maxim84_ @

                        глупый вопрос канечно (( но каким сделать значение l потому что если 0 то ругается что Column count doesn't match value count at row 1
                          ExpandedWrap disabled
                            for (int l = 0; l < dataGridView1.RowCount; l++)


                          П.С. вообще-то я заменил только кучу "+" строк, и приведенный мной код это только часть, а не весь код.
                            Цитата maxim84_ @

                            пожалуйста напишите с моим кодом до меня чет не доходит там же в цикле вставляются значения из датагрида так что мне еще туда дописывать?
                              ExpandedWrap disabled
                                private void toolStripButton2_Click(object sender, EventArgs e)
                                {
                                    // добавление записей в таблицу
                                    string lastvo = sqlClass.getIndex("SELECT MAX(Id_company) AS last fROM company");
                                 
                                    for (int l = 0; l < dataGridView1.RowCount; l++)
                                    {
                                        string insert = BuildSqlQueryFromRow(lastvo, dataGridView1.Rows[l] );
                                        sqlClass.InsertUpdate(insert);
                                    }
                                }
                                 
                                private string BuildSqlQueryFromRow(string companyId, DataGridViewRow row)
                                {
                                    var builder = new StringBuilder();
                                 
                                    builder.Append("insert into company (Id_company, address, nachalo_sotrudnichestva, vozmojnost_adaptacii,  korporativ_obuchenie, otzyvy, chernyi_list, BIN_RNN, primechanie, nalichie_dogovorov, opyt_sotrudnichesva, kolich_obuch) ");
                                    builder.Append("values (");
                                    
                                    builder.AppandFormat("'{0}'", companyId);
                                    
                                    foreach (DataGridViewCell cell in row.Cells)
                                    {
                                        builder.AppendFormat("'{0}'", cell.Value);
                                    }
                                 
                                    builder.Append(")");
                                    
                                    return builder.ToString();
                                }


                              ПС. Код написал прям тут, не исключены ошибки - проверяйте.
                                Цитата maxim84_ @

                                блин вот что выходит
                                ExpandedWrap disabled
                                  "insert into company (Id_company, address, nachalo_sotrudnichestva, vozmojnost_adaptacii, korporativ_obuchenie, otzyvy, chernyi_list, BIN_RNN, primechanie, nalichie_dogovorov, opyt_sotrudnichesva, kolich_obuch) values ('''q''q''12.02.2012 0:00:00''True''True''3''True''454''dvsdv''6''6''')"
                                а как вывод даты поменять чтоб без времени?

                                Добавлено
                                Цитата maxim84_ @

                                вы пропустили запятую между value я поставил только вот теперь он вставляет после последнего значения запятую как это предусмтреть чтоб после последнего не вставлялась запятая
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0414 ]   [ 17 queries used ]   [ Generated: 18.04.24, 23:31 GMT ]