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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Удаление записи из таблицы 
V
    Опции темы
kuller
Дата 30.5.2008, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Здравствуйте!!!
Кто знает в чем дело??
У меня вот в общем такая проблема: 
Есть форма я в ней ввожу УДАЛЯЕМУЮ ЗАПИСЬ потом нажимаю кнопку ОК и в ней прописываю 
Код

private void button1_Click(object sender, EventArgs e)
        {
            string s = textBox1.Text;
            OleDbDataAdapter B = new OleDbDataAdapter("DELETE * FROM TipRemonta WHERE TipRemonta.ChtoChinili='" + s + "'", "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + @"..\Taksopark.mdb");
            B.SelectCommand.Connection.Open();
            B.SelectCommand.ExecuteNonQuery();
            if (B.SelectCommand.ExecuteNonQuery()== 1)
                MessageBox.Show("Сведения успешно УДАЛЕНЫ", "Удаление", MessageBoxButtons.OK, MessageBoxIcon.Information);
            B.SelectCommand.Connection.Close();
        }

ну вот запись моя удаляется ... в папке \bin\Debug БД изменилась записи удаляютя .... потом перекомпилю прогу И ТУТ ПРОБЛЕМА ... те записи КОТОРЫЕ я УДАЛИЛ появляются в БД снова .... ПОДСКАЖИТЕ КАК БЫТЬ в чем дело ... как это так???

Это сообщение отредактировал(а) kuller - 30.5.2008, 10:37
PM MAIL   Вверх
vretsky
Дата 30.5.2008, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



ващето ты что то путаешь, данный код обращается к базе которая лежит не в папке Дебаг , а на уровень выше т.е. в папке бин
Код

 "Data Source=" + @"..\Taksopark.mdb");


если тебе надо обратиться к папке дебаг то так

Код

 "Data Source=" + @" Taksopark.mdb");


а вааще что за ужасный код ! 
если тебе надо только удалять записи из таблицы, то зачем ДатаАдаптер? используй прямой доступ. далее ты дважды (не ведая того) вызываешь ExecuteNonQuery, если у тебя команда на удаление то при чем тут SelectCommand? и если бы у тебя срабатывал Мессач, то соединение было бы открытым пока пользователь не нажал бы кнопку ОК в MssBoxe, что ни есть хорошо.
Подытаживая я бы написал как нибудь так:
Код

            OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + @"1.mdb");
            try
            {                
                OleDbCommand com = new OleDbCommand("DELETE * FROM tab WHERE tab.name='" + s + "'", con);
                con.Open();
                com.ExecuteNonQuery();
                con.Close();
            }
            catch (Exception ex)
            {
                con.Close();
                MessageBox.Show(ex.ToString());
            }




PM MAIL   Вверх
jonie
Дата 30.5.2008, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата

 ПОДСКАЖИТЕ КАК БЫТЬ в чем дело ... как это так???
в твоем проекте есть скопированная база. тебе надо запретить ее копирование всякий раз при компиляции проекта. делается это в solution explorer давишь правой клавишей на файле базы и выбираешь свойства... ну и читаешь что там написано по поводу копирования при сборке.



Это сообщение отредактировал(а) jonie - 30.5.2008, 22:05


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


Опытный
**


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

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



Спасибо ВАМ 
vretsky
jonie
работает .. я в результате рещил сделать так: я удаляю не в той которая в ДЕБЮГЕ, а в той которая на уровне БИН ... а соответственно при следующей компиляции та что в ДЕБЮГЕ автоматически заменяется, а показать на вывод преподавателю то что запись улдалилась делаю запрос и обращаюсь тоже к той БД что на уровне БИН)
PM MAIL   Вверх
kuller
Дата 30.5.2008, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



По твоему совету 
vretsky
сделал вот так 
Код

private void button1_Click(object sender, EventArgs e)
        {
            string s = textBox1.Text;
            OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + @"..\..\Taksopark.mdb");
            try
            {
                OleDbCommand com = new OleDbCommand("DELETE * FROM Mawini WHERE NomerMashini='" + s + "'", con);
                con.Open();
                com.ExecuteNonQuery();
                con.Close();
            }
            catch (Exception ex)
            {
                con.Close();
                MessageBox.Show(ex.ToString());
            }

        }

И ВСЕ ТОЖЕ РАБОТАЕТ прекрасно)))
только вот всетаки пришлось не в ДЕБЮГЕ менять БД а на уровне БИН, т.е. поднимаюсь на 2 уровня выше и все работает)
Код

@"..\..\Taksopark.mdb"


PM MAIL   Вверх
Google
  Дата 20.3.2019, 02:13 (ссылка)  





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

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

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

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


 




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


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

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