Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Не сохранются изменеия / 4 сообщений из 4, страница 1 из 1
15.02.2009, 12:36
    #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
15.02.2009, 12:47
    #35818064
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не сохранются изменеия
Лишнее... почитайте про то как работает адаптер и что происходит после вызова AcceptChanges
Код: plaintext
employeeDataSet.AcceptChanges();
...
Рейтинг: 0 / 0
15.02.2009, 12:55
    #35818069
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не сохранются изменеия
...
Рейтинг: 0 / 0
15.02.2009, 13:13
    #35818089
playnet
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не сохранются изменеия
buser,

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

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


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