powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Не сохранются изменеия
4 сообщений из 4, страница 1 из 1
Не сохранются изменеия
    #35818059
playnet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что-то странное.
Есть 2 формы.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
    public partial class EmployersAdd : Form
    {
        DataRow dr;
        public EmployersAdd()
        {
            InitializeComponent();
        }

        public EmployersAdd(DataRow _dr)
        {
            InitializeComponent();
            dr = _dr;
            dr.BeginEdit();
            FIO.Text = dr["FIO"].ToString();
            phoneMob.Text = dr["phone_mobile"].ToString();
        }

        private void Ok_Click(object sender, EventArgs e)
        {
            //employeeDataSet.employee.Rows.Add(dr);
            dr["FIO"] = FIO.Text;
            dr["phone_mobile"] = phoneMob.Text;
            dr.EndEdit();
            //dr.AcceptChanges();
            this.Close();
        }

Это форма для правки данных.

Основная форма:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
    public partial class EmployersMain : Form
    {
        DataRow dr;
        private void bAdd_Click(object sender, EventArgs e)
        {
            dr = employeeDataSet.employee.NewRow();
            EmployersAdd child = new EmployersAdd(dr);
            child.ShowDialog();
            employeeDataSet.employee.Rows.Add(dr);
            employeeDataSet.AcceptChanges();
            employeeTableAdapter.Update(this.employeeDataSet.employee);
        }
...
        private void bFind_Click(object sender, EventArgs e)
        {
            this.employeeTableAdapter.Fill(this.employeeDataSet.employee);
            this.listEmployeers.DataSource = this.employeeBindingSource;
            this.listEmployeers.DisplayMember = "FIO";
            this.listEmployeers.ValueMember = "employee_id";
        }

Так вот, вызываю bFind, делает выборку, добавляю через bAdd. Новые строки появляются в выборке (ListBox), причем потом нажимаю "изменить" (dr = employeeDataSet.employee.Rows[listEmployeers.SelectedIndex];), во второстепенную форму выводит нормально все новые записи.. А нажимаю снова поиск -- результаты очищаются.. И в базу ничего реально не пишет.
Что я упустил? Чувствую, что ошибка на поверхности...
...
Рейтинг: 0 / 0
Не сохранются изменеия
    #35818064
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лишнее... почитайте про то как работает адаптер и что происходит после вызова AcceptChanges
Код: plaintext
employeeDataSet.AcceptChanges();
...
Рейтинг: 0 / 0
Не сохранются изменеия
    #35818069
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Не сохранются изменеия
    #35818089
playnet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
buser,

Оно!
Спасибо огромное, и особенно за оперативный ответ!

А есть еще какие подводные камни в написанном коде? То, над чем я могу неделю биться, профи за 5 минут решают.. )
В частности, нужно ли dr.BeginEdit();
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Не сохранются изменеия
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]