Здравствуйте, Denisss, Вы писали:
D>Берем WinForms, ложим два TextBox на форму (поля ID, FName), DataAdapter (там запрос select ID, FName from TI_IS where ID=1), генерим датасет dsIS1. Заполнение датасета и прочее не привожу. Меняем FName, далее при нажатии на кнопку "Update" вызывается такое:
D>D>BindingContext[dsIS1.TI_IS].EndCurrentEdit();
D>odap.Update(dsIS1.TI_IS.GetChanges());
D>dsIS1.TI_IS.AcceptChanges();
D>
D>всё работает, все счастливы.
D>Теперь переходим к ASP.NET. Ложим на страничку два TextBox, кнопку Update в btnUpdate_Click пишем:
D>D>dsIS1.TI_IS.Rows[0].EndEdit();
D>odap.Update(dsIS1.TI_IS.GetChanges());
D>dsIS1.TI_IS.AcceptChanges();
D>
D>dsIS1.TI_IS.GetChanges() всегда возвращает null. Что я делаю не так и как сделать правильно?
попробуй так
private void _update(DataTable table)
{
SqlDataAdapter _da = (SqlDataAdapter)_data.GetType().GetField(String.Format("da_{0}", table.TableName.ToLower()),
BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.GetField).GetValue(_data);
if (_da != null)
{
_da.Update(table);
}
}
гдк _data — System.ComponentModel.Component там размещены все дата адаптеры проекта или его части, при этом они все начинаются на "da_имя". хотя это мои странности можеш делать как хочеш просто, идея из кода понятна.