Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
 Не сохранются изменеия  [new]
playnet
Member

Откуда:
Сообщений: 127
Что-то странное.
Есть 2 формы.
    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();
        }

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

Основная форма:
    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];), во второстепенную форму выводит нормально все новые записи.. А нажимаю снова поиск -- результаты очищаются.. И в базу ничего реально не пишет.
Что я упустил? Чувствую, что ошибка на поверхности...
15 фев 09, 12:36    [6821264]     Ответить | Цитировать Сообщить модератору
 Re: Не сохранются изменеия  [new]
buser
Member

Откуда: Санкт-Петербург
Сообщений: 4537
Лишнее... почитайте про то как работает адаптер и что происходит после вызова AcceptChanges
employeeDataSet.AcceptChanges();
15 фев 09, 12:47    [6821277]     Ответить | Цитировать Сообщить модератору
 Re: Не сохранются изменеия  [new]
buser
Member

Откуда: Санкт-Петербург
Сообщений: 4537
Собственно вот: DbDataAdapter.Update - метод (DataTable)
15 фев 09, 12:55    [6821284]     Ответить | Цитировать Сообщить модератору
 Re: Не сохранются изменеия  [new]
playnet
Member

Откуда:
Сообщений: 127
buser,

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

А есть еще какие подводные камни в написанном коде? То, над чем я могу неделю биться, профи за 5 минут решают.. )
В частности, нужно ли dr.BeginEdit();
15 фев 09, 13:13    [6821306]     Ответить | Цитировать Сообщить модератору
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить