Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DataTableMapping, не могу обратится к полям БД 
:(
    Опции темы
t0mmy4824
Дата 24.5.2011, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 20.5.2011

Репутация: нет
Всего: нет



Добрый вечер всем
Вычитал что переименовывать поля в DataSet можно с помощь DataTableMapping...
создал простую таблицу...два поля 
Код

private static void TableMappingCatalogs(SqlDataAdapter dataAdapter)
        {
            try
            {
                DataColumnMapping[] mappedColums ={
                                                      new DataColumnMapping ("id_catalog","Kod"),
                                                      new DataColumnMapping ("name","Model")
                                                  };
                DataTableMapping usersTableMapping = new DataTableMapping("Catalogs", "Catalogs", mappedColums);
                dataAdapter.TableMappings.Add(usersTableMapping);

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

потом вывожу все в датагрид, там все нормально имена показывает "Kod","Model"...все работает
Код

using (SqlConnection connection = new SqlConnection(connectString))
            {
                SqlDataAdapter dataAdapter1 =
                new SqlDataAdapter(new SqlCommand(sql , connection));

                DataSet ds = new DataSet();
                ds.Tables.Add("Catalogs");
                TableMappingCatalogs(dataAdapter1);
                dataAdapter1.Fill(ds.Tables["Catalogs"]);
                // Assign the DataSet as the DataSource for the BindingSource.
                BindingSource bs = new BindingSource();
                bs.DataSource = ds.Tables["Catalogs"].DefaultView;
                bindingNavigator1.BindingSource = bs;
                dataGridView1.DataSource = bs;


делаю кнопку которая добавляет
хочу добавить запись в БД по нажатию кнопки
Код

private void button1_Click(object sender, EventArgs e)
        {
            string sql1 = AddRecords();
            SqlDataAdapter dataAdapter = new SqlDataAdapter(sql1,connectString);
            DataSet ds = new DataSet();
            dataAdapter.Fill(ds);
            dataAdapter = new SqlDataAdapter(sql, connectString);
            ds.Tables.Add(tabl);
            dataAdapter.Fill(ds.Tables[tabl]);
            BindingSource bs = new BindingSource();
            bs.DataSource = ds.Tables[tabl].DefaultView;
           
            dataGridView1.DataSource = bs;
            
        }

сама функция AddRecords() генерирует запрос ....
Код

string query = string.Format("INSERT INTO {0}(", this.Text);
                //запрос на добавление
                for (int i = 1; i <= dataGridView1.Columns.Count; i++)
                {
                    query += dataGridView1.Columns[i - 1].HeaderText.ToString() + ",";
                }

                query = query.Remove(query.Length - 1);

                query += ") VALUES (";

                for (int i = 1; i <= dataGridView1.Columns.Count; i++)
                {
                    query += "'" + panel1.Controls["textBox" + i].Text + "',";

                }

                query = query.Remove(query.Length - 1);
                query += ")";
                return query;


в итоге получаю ошибку: 
Additional information: Invalid column name 'Kod'.
Invalid column name 'Model'.


Помогите решить эту проблему...
PM MAIL   Вверх
jonie
Дата 24.5.2011, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 8
Всего: 118



ну очевидно что ошибка тут:
Код

5: .... dataGridView1.Columns[i - 1].HeaderText

вообще не надо брать грид для итерирования по колонкам - грид только отображает данные.
Берите из источника данных..


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
t0mmy4824
Дата 24.5.2011, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 20.5.2011

Репутация: нет
Всего: нет



Цитата(jonie @ 24.5.2011,  22:02)
ну очевидно что ошибка тут:
Код

5: .... dataGridView1.Columns[i - 1].HeaderText

вообще не надо брать грид для итерирования по колонкам - грид только отображает данные.
Берите из источника данных..

я просто только учусь..подробней можете написать? буду признателен
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0414 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.