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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Быстрый Insert. 
V
    Опции темы
shark1
Дата 1.12.2008, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Здрасте всем.Такая задача.Есть таблица в Access,в ней есть колонка "StatusInfo",когда добовляю нового клиента в неё добовляется "New",затем когда вывожу информацию в datagridview,в обработчике dataGridView1_CellPainting вместо "New" подставляю картинку.Теперь например я закончил работать с клиентом(клиентами),как мне сделать так,например я выделил строчку или несколько строк в datagridview нажимаю на
radioButton(chengeStatus)и "New" в таблице поменялось на "Arch" .Спасибо.
PM MAIL   Вверх
shark1
Дата 1.12.2008, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Может я ошибся, когда я добовляю клиента то в поле "StatusInfo" добовляется "New",затем когда вывожу информацию в datagridview,в обработчике dataGridView1_CellPainting вместо "New" подставляю картинку.Может надо делать не Insert а Update,ведь у меня значение уже есть в базе("New"),мне его надо поменять на другое("Arch"),а потом при новом запросе соответственно и поменяется картинка.
Подскажите,ну неужели никто такое не делал ???.Спасибо.
PM MAIL   Вверх
shark1
Дата 2.12.2008, 00:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



вроде все заработало вот так:
Код

private void rb_Arch_Click(object sender, EventArgs e)
        {
            if (rb_Arch.Checked)
            {
                 UpdateQuery();
            }
        }
        private void UpdateQuery()
        {
            string query = "UPDATE [TBL_Clients] SET StatusInfo='Arch'  WHERE StatusInfo='New'";
                        bool fl = false;

            foreach (DataGridViewRow rw in dataGridView1.SelectedRows)
            {
                if (!fl)
                {
                    query += "IDClient = " + rw.Cells["IDClient"].Value.ToString();
                    fl = true;
                }
                else
                {
                    query += " OR IDClient = " + rw.Cells["IDClient"].Value.ToString();
                }
            }

            conn.Open();

            OleDbCommand cmd = new OleDbCommand();

            cmd = new OleDbCommand(query, conn);

            cmd.ExecuteNonQuery();

           
            conn.Close();

        }



только теперь оно меняет во всех строчках в кот.есть "New".А как сделать чтоб менял только в выбранных.
я знаю что нужно убрать вот это :StatusInfo='New'
но тогда выподает на ошибке
Syntax error in WHERE clause.
на этой строке:
cmd.ExecuteNonQuery();

Спасибо.
PM MAIL   Вверх
shark1
Дата 2.12.2008, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ну где все,нужно чуть чуть подправить.Подскажите плиззз.Спасибо.
PM MAIL   Вверх
jonie
Дата 3.12.2008, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



shark1 выведи запрос сам, который исполнять будешь, и посмотри какие ID у тебя будут там


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


Опытный
**


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

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



Вот так:
Код

string query = "UPDATE [TBL_Clients] SET StatusInfo='Arch'";
            bool fl = false;

            foreach (DataGridViewRow rw in dataGridView1.SelectedRows)
            {
                if (!fl)
                {
                    
                    query += " WHERE IDClient = " + Convert.ToString(rw.Cells["IDClient"].Value);
                    fl = true;
                }
                else
                {
                    query += " OR IDClient = " + Convert.ToString(rw.Cells["IDClient"].Value);
                }
            }

            if (fl)
            {
                conn.Open();

                OleDbCommand cmd = new OleDbCommand();

                cmd = new OleDbCommand(query, conn);

                cmd.ExecuteNonQuery();

                conn.Close();
            }

 все заработало, у меня RowHeadersVisible был false,как только сделал truе все заработало,хоть так и не очень красиво выглядет(а может можно сделать и со скрытой колонкой?),но главное что зараотало.СПАСИБО.

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

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


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

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




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


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

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