[b]怎样用datagridview来录入数据到SQL2005并在点击“添加”按钮后同时在datagridview里刷新显示出来?我在窗体里放一datagridview控件和3个按钮,(“添加”、“删除”、“保存”)。
用datagridview控件来作为输入数据并显示数据用(初始属性设置3列);
3个按钮的作用如下:
点“添加”按钮在datagridview控件里新增一空白行,且要新增加的行在datagridview里显示在最下方以方便输入数据;
点“保存”按钮要求把刚才在新增加行里输入的数据录入到SQL2005数据库里并同时在datagridview里刷新显示出来;
“删除”按钮要求如下:就是我点击选中datagridview控件里的任意一行后,点击“删除”,即可删除该条记录(同时在SQL2005里删除记录以及刷新datagridview控件并显示)
以上就是我的全部需求,我已经奋战3天2夜并尝试过很多方法而无果!!!我是C#初学者,很想攻克这一难题,想请各位高手指点迷津,最好能给出完整代码,我在此万分感激!小弟的账号里刚好用完分值,所以在此没用分送上,要是有哪位兄台给出解决办法,日后必将报答!再次感谢![/b]
用datagridview控件来作为输入数据并显示数据用(初始属性设置3列);
3个按钮的作用如下:
点“添加”按钮在datagridview控件里新增一空白行,且要新增加的行在datagridview里显示在最下方以方便输入数据;
点“保存”按钮要求把刚才在新增加行里输入的数据录入到SQL2005数据库里并同时在datagridview里刷新显示出来;
“删除”按钮要求如下:就是我点击选中datagridview控件里的任意一行后,点击“删除”,即可删除该条记录(同时在SQL2005里删除记录以及刷新datagridview控件并显示)
以上就是我的全部需求,我已经奋战3天2夜并尝试过很多方法而无果!!!我是C#初学者,很想攻克这一难题,想请各位高手指点迷津,最好能给出完整代码,我在此万分感激!小弟的账号里刚好用完分值,所以在此没用分送上,要是有哪位兄台给出解决办法,日后必将报答!再次感谢![/b]
添加最简单了,在你绑定的 datatable 里面添加一个 新的 DataRow 在绑定就处理一个新行了其他 更新,删除 去google 都有
保存 用
SqlCommandBuilder sqlbui = new SqlCommandBuilder(dataAdapter);
dataAdapter.Update(dataSet,"表名");
然后刷新 datagridview
删除是:
Convert.ToInt32(datagridview.SelectedRows[0].Cells[0].Value) 获取你选中的那行的 第一个格的值,一般都是保存的主键,且是隐藏列
用这个获得主键值,写删除语句就可以了。
保存按钮SQL语句:insert into 表 (列1,列2) values ('" + ds.Tables[0].Rows[i][0].ToString() + "','" + ds.Tables[0].Rows[i][1].ToString() + "')
DataSet ds = new DataSet();
SqlDataAdapter sda;SqlCommandBuilder scb = new SqlCommandBuilder(sda);
sda.Update(ds);
this.dataGridView1.DataSource = ds.Tables[0];
实现更新,重新绑定
this.dataGridView1.BindingContext[this.dataGridView1.DataSource, this.dataGridView1.DataMember].AddNew();删除:
this.dataGridView1.BindingContext[this.dataGridView1.DataSource, this.dataGridView1.DataMember].RemoveAt(this.dataGridView1.BindingContext[this.dataGridView1.DataSource, this.dataGridView1.DataMember].Position);
这个对于你的DataGridView的DataSource的类型来说有点区别,如果是来自SqlCommandBuilder的SqlDataAdapter的DataSet,可以参照如下代码:
System.Data.SqlClient.SqlDataAdapter adapter=....;
DataSet tempSet=((DataSet)this.dataGridView1.DataSource).GetChanges();
adapter.Update(tempSet);
((DataSet)this.dataGridView1.DataSource).Merge(tempSet);//取回其他用户对数据库更新的数据,并更新当前DataGirdView