2015-03-18 2 views
-1

Я проверил параметр Включить редактирование в datagridview У меня есть модель набора данных, сгенерированная из моей базы данных. Я пытаюсь использовать метод обновления, но не принимает правильные параметры при загрузке даже он извлекает и показывает в datagridview.Как обновить базу данных из datagridview

private void FrmSession_Load(object sender, EventArgs e) 
    { 
     tblSessionTableAdapter tblSession = new tblSessionTableAdapter(); 
     dataGridView1.DataSource = tblSession.spGetSessionRecord(); 

    } 

но на кнопке нажмите даже его не обновлять с datagridview, я что-то пропустил?

private void btnAdd_Click(object sender, EventArgs e) 
    { 
     FMSDataSet ds = new FMSDataSet(); //Object of automatically generated model 
     tblSessionTableAdapter tblSession = new tblSessionTableAdapter(); 
     tblSession.Update(ds); // i put ds here because on update's third constructor it requires dataset 
    } 
+0

Вы должны использовать оригинальный модифицированный DataSource и, вероятно, оригинальный адаптер, если вы создаете новый DataSet, как вы планируете отправить измененные данные, присутствующие только в исходном наборе данных в вашу БД? – Steve

+0

Я не делал никаких наборов данных или адаптеров, я создал модель набора данных, используя управление набором данных из панели инструментов, и используя этот tableadapter, я могу получить данные, как вы можете видеть в событии «frmSession_Load», поэтому почему я не могу его обновить, используя тот же самый адаптер tblsession .update? –

+0

Каков тип возврата «tblSession.spGetSessionRecord();»? – AXMIM

ответ

0

Проблема заключается в том, что новый DataSet создается методом click. Новый DataSet не содержит никаких изменений, потому что он только что создан.

Модификации содержатся в DataSet/DataTable, который является источником данных GridView.

tblSession.Update ([Поместите тот же DataSet/DataTable, что и в режиме загрузки здесь));

0

Если вы хотите, чтобы ваш набор данных имел состояние, вам необходимо сделать свой набор данных переменной-членом, чтобы вы могли сохранить текущее состояние и обновить его.

FMSDataSet ds; 

Constructor() 
{ 
    ds = new FMSDataSet(); 
} 

// Затем получите доступ к нему в событии click.

private void btnAdd_Click(object sender, EventArgs e) 
{ 
    tblSessionTableAdapter tblSession = new tblSessionTableAdapter(); 
    tblSession.Update(this.ds); // update persistent data set 
}