C# WinForm DataGridView Update, Insert, Delete Not Working -
here code :
public partial class form1 : form { sqlcommandbuilder cmbl; string con = "data source=localhost;initial catalog=db;persist security info=true;user id=sa;password=1234"; sqldataadapter sdahfp; string querydgvhfp = "select * hfp"; datatable dthfp; sqlconnection cn; public form1() { initializecomponent(); } private void form1(object sender, eventargs e) { sdahfp = new sqldataadapter(querydgvhfp, con); dthfp = new datatable(); sdahfp.fill(dthfp); foreach (datarow item in dthfp.rows) { int n = dgvhfp.rows.add(); dgvhfp.rows[n].cells[0].value = item["hfp"].tostring(); dgvhfp.rows[n].cells[1].value = item["yearperiod"].tostring(); if (item["active"].tostring() == "y") { dgvhfp.rows[n].cells[2].value = true; } else { dgvhfp.rows[n].cells[2].value = false; }; dgvhfp.rows[n].cells[3].value = item["id"].tostring(); } } that's load data sql query datagridview, , add button execute update or insert within code :
private void btupdate_click(object sender, eventargs e) { try { cmbl = new sqlcommandbuilder(sdahfp); sdahfp.update(dthfp); messagebox.show("success", "update", messageboxbuttons.ok, messageboxicon.information); } catch (exception ex) { messagebox.show(ex.message, "error", messageboxbuttons.ok, messageboxicon.error); } } when update / insert data in datagridview , click update button, success messagebox appears, data in database not updated nor inserted
please me solve problem, why update button doesn't work?
thank much.
you should bind datagridview datatable, when change cell value or add or remove rows, changes apply on datatable. can save data table changes using tableadapter:
this.datagridview1.datasource = datatable; note: store true/false or yes/no values, it's better use bit data type in sql server. in below example supposed need store values y/n nvarchar(50) , setup datagridviewcheckboxcolumn support editing string column.
example
suppose have table table1:
column1: int, primary key column2: nvarchar(50), allows null, containing y or n vaule and want edit data of table1 in datagridview:
here code can use load , edit , save data:
private datatable table; private sqldataadapter dataadapter; private void sampleform_load(object sender, eventargs e) { var command = "select * table1"; var connection = @"your connection string"; table = new datatable(); dataadapter = new sqldataadapter(command, connection); var commandbuilder = new sqlcommandbuilder(dataadapter); dataadapter.fill(table); //set false default value column2 table.columns["column2"].defaultvalue = false; var column1 = new datagridviewtextboxcolumn(); column1.name = "column1"; column1.datapropertyname = "column1"; var column2 = new datagridviewcheckboxcolumn(); column2.name = "column2"; column2.datapropertyname = "column2"; column2.truevalue = "y"; column2.falsevalue = "n"; this.datagridview1.columns.add(column1); this.datagridview1.columns.add(column2); //bind grid table this.datagridview1.datasource = table; } private void savebutton_click(object sender, eventargs e) { //save data this.datagridview1.endedit(); dataadapter.update(table); } 
Comments
Post a Comment