Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > LINQ (Language-Integrated Query) > Редактирование DataGridView и использование ООП


Автор: Fire44 20.11.2010, 12:26
Вот таким способом хочу сделать обновление данных в  DataGridView, для загрузки данных вызываю метод GetTaruf(), а для сохраненния в базу данных SaveTaruf(), но к сожалению сохранение данных не работает после редактирования DataGridView.
Код

public class Tarufs
    {
        DataClasses1DataContext ds;
        public Tarufs()
        {           
                ds = new DataClasses1DataContext();            
        }
        public ObservableCollection<taruf> GetTaruf()
        {
            IEnumerable<taruf> myssQuery = from p in ds.taruf
                                           select p;
            ObservableCollection<taruf> source = new ObservableCollection<taruf>();
            foreach (taruf mmodel in myssQuery)
                source.Add(mmodel);
            return source;
        }
        public void SaveTaruf()
        {          
            ds.SubmitChanges();                      
        }
    }


А так вот работает сохранение данных:
 
Код

DataClasses1DataContext ds;
 private void b_TarufuOpen_Click(object sender, EventArgs e)
        {
            ds = new DataClasses1DataContext();
            IEnumerable<taruf> myssQuery = from p in ds.taruf
                                           select p;
            ObservableCollection<taruf> source = new ObservableCollection<taruf>();
            foreach (taruf mmodel in myssQuery)
                source.Add(mmodel);
            dataGridViewTarufu.DataSource = source;          

        }

private void b_SaveTarufu_Click(object sender, EventArgs e)
        {            
            ds.SubmitChanges(); 
        }

Как запихнуть эту функцию в отдельный класс и чтоб работала функция сохранения в базу данных ds.SubmitChanges();

Автор: KelTron 20.11.2010, 18:42
Покажи как ты используешь свой класс.

Автор: KelTron 20.11.2010, 19:00
В общем должно быть типа такого:
Код

private Tarufs tr = new Tarufs();

private void b_SaveTarufu_Click(object sender, EventArgs e)
{
    tr.SaveTaruf();
}

private void b_TarufuOpen_Click(object sender, EventArgs e)
{
    this.dataGridView1.DataSource = tr.GetTaruf();
}


И ещё функцию
Код

public ObservableCollection<taruf> GetTaruf()
{
    IEnumerable<taruf> myssQuery = from p in ds.taruf
                                   select p;
    ObservableCollection<taruf> source = new ObservableCollection<taruf>();
    foreach (taruf mmodel in myssQuery)
        source.Add(mmodel);
    return source;
}

можно слегка упростить
Код

public ObservableCollection<taruf> GetTaruf()
{
    return new ObservableCollection<taruf>(ds.taruf);
}


Автор: Fire44 20.11.2010, 20:32
Спасибо, уже решил проблему.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)