Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2015, 04:56   #1
Woolf42
Пользователь
 
Регистрация: 18.05.2014
Сообщений: 12
По умолчанию Удаление, добавление.

Здравствуйте, у меня проблема с добавлением данных, т.е. в грид они добавляются и пока нахожу в программе все хорошо, при закрытие программы данные пропадают.
Код:
Imports System.Data
Imports System.Data.OleDb
Public Class dobav_kl


    Private Sub CheckedListBox1_Click(sender As Object, e As EventArgs) Handles CheckedListBox1.Click
        If CheckedListBox1.CheckedItems.Count = 1 Then TextBox4.Visible = True And Label4.Visible = True Else TextBox4.Enabled = False And Label4.Visible = False

    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim dobavConnection As New OleDbConnection
        dobavConnection.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\BD.accdb"
        Dim dobavCommand As New OleDbCommand
        dobavCommand.Connection = dobavConnection

        dobavCommand.CommandText = "insert into Клиенты (Фамилия,Имя,Отчество,Телефон,Адрес,Паспорт) Values('" + TextBox1.Text + "','" + TextBox2.Text + "','" + TextBox3.Text + "','" + MaskedTextBox1.Text + "','" + TextBox6.Text + "','" + MaskedTextBox2.Text + "')"
        dobavConnection.Open()
        dobavCommand.ExecuteNonQuery()
        MessageBox.Show("Запись сохранена", "Сохранение", MessageBoxButtons.OK)
        Me.Close()
    End Sub
Подскажите как правильно удалять. Что написать в условии Where?
Код:
Private Sub УдалитьToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles УдалитьToolStripMenuItem.Click
        Dim dobavConnection As New OleDbConnection
        dobavConnection.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\BD.accdb"
        Dim dobavCommand As New OleDbCommand
        dobavCommand.Connection = dobavConnection
        dobavCommand.CommandText = "Delete from Клиенты Where Код>0"
        dobavConnection.Open()
        dobavCommand.ExecuteNonQuery()
        MessageBox.Show("Запись успешно удалена", "Удаление", MessageBoxButtons.OK)
        dobavConnection.Close()
        Me.КлиентыTableAdapter.Fill(Me.BDDataSet.Клиенты)
    End Sub
Woolf42 вне форума Ответить с цитированием
Старый 27.02.2015, 09:12   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Что написать в условии Where?
Что нужно, то и пишите. Сейчас вы удаляете всех у кого код больше 0. То есть видимо все записи.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 27.02.2015, 11:38   #3
Woolf42
Пользователь
 
Регистрация: 18.05.2014
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Что нужно, то и пишите. Сейчас вы удаляете всех у кого код больше 0. То есть видимо все записи.
Больше 0 это для проверки делал, а как написать что бы удалял ту запись которая выбрана не знаю, вот и прошу помощи.
Woolf42 вне форума Ответить с цитированием
Старый 27.02.2015, 11:47   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Зависит от способа выбора. Если выделение в DataGridView, то либо в нем самом, либо в BindingSource есть свойства для получения выбранного/выбранных элементов.
https://msdn.microsoft.com/en-us/lib...vs.110%29.aspx
https://msdn.microsoft.com/en-us/lib...vs.110%29.aspx
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 27.02.2015, 15:13   #5
Woolf42
Пользователь
 
Регистрация: 18.05.2014
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Зависит от способа выбора. Если выделение в DataGridView, то либо в нем самом, либо в BindingSource есть свойства для получения выбранного/выбранных элементов.
https://msdn.microsoft.com/en-us/lib...vs.110%29.aspx
https://msdn.microsoft.com/en-us/lib...vs.110%29.aspx
Через bindingsource не получится, надо через datagridview. Не понимаю как из грида вытащить код той записи которой надо удалить, через datagridview.selectedrows возвращает строку.
Woolf42 вне форума Ответить с цитированием
Старый 27.02.2015, 15:41   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Какую еще строку? Список DataGridRow он возвращает. И у DataGridRow есть либо DataBoundItem (который надо скастовать к тому, что там на самом деле, и достать код) либо список ячеек Cells.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 27.02.2015, 16:24   #7
Woolf42
Пользователь
 
Регистрация: 18.05.2014
Сообщений: 12
По умолчанию

Как же тут все сложно. Не хватает у меня мозгов для VS. А почему не сохраняет данные в базу?
Woolf42 вне форума Ответить с цитированием
Старый 27.02.2015, 16:36   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

VS тут причем? Язык/фреймворк != IDE, IDE только помогает, например, списком автокомплита при вводе и краткой документацией при выборе свойства/метода в списке.

Откуда у вас БД берется в папке программы (bin)? Если добавили в проект и поставили в свойствах файла копирование при сборке, то может быть там стоит Always, а не if newer.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 27.02.2015, 18:18   #9
Woolf42
Пользователь
 
Регистрация: 18.05.2014
Сообщений: 12
По умолчанию

Всегда работал в Delphi,а сейчас приходится на VS писать программу. БД находится в bin\debug, соединял через конструктор.
Woolf42 вне форума Ответить с цитированием
Старый 27.02.2015, 18:55   #10
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Что за конструктор?
Ну попробуйте после закрытия программы не запускать/пересобирать ее из студии, а либо через сам ехе в bin, либо там же саму БД откройте.
Если тогда нормально — значит оно просто перезаписывает файл каждый раз (ищите БД в списке файлов проекта, чтоб изменить это поведение).
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление и удаление Shmel9 Microsoft Office Access 2 22.11.2012 02:04
Добавление/Удаление CrazyN00b Помощь студентам 0 28.11.2010 17:38
Добавление и удаление записей в БД DimOn4Ik БД в Delphi 6 27.03.2010 15:07
Удаление/добавление на С++. Serror Фриланс 6 21.10.2009 09:35
Удаление/добавление. Serror Общие вопросы C/C++ 3 19.10.2009 09:41