怎样用datagridview来录入数据到SQL2005并在点击“添加”按钮后同时在datagridview里刷新显示出来?

时间:2022-03-11 09:30:58
[b] 怎样用datagridview来录入数据到SQL2005并在点击“添加”按钮后同时在datagridview里刷新显示出来?

我在窗体里放一datagridview控件和3个按钮,(“添加”、“删除”、“保存”)。
用datagridview控件来作为输入数据并显示数据用(初始属性设置3列);
3个按钮的作用如下:
点“添加”按钮在datagridview控件里新增一空白行,且要新增加的行在datagridview里显示在最下方以方便输入数据;
点“保存”按钮要求把刚才在新增加行里输入的数据录入到SQL2005数据库里并同时在datagridview里刷新显示出来;
“删除”按钮要求如下:就是我点击选中datagridview控件里的任意一行后,点击“删除”,即可删除该条记录(同时在SQL2005里删除记录以及刷新datagridview控件并显示)
以上就是我的全部需求,我已经奋战3天2夜并尝试过很多方法而无果!!!我是C#初学者,很想攻克这一难题,想请各位高手指点迷津,最好能给出完整代码,我在此万分感激!小弟的账号里刚好用完分值,所以在此没用分送上,要是有哪位兄台给出解决办法,日后必将报答!再次感谢![/
b]

13 个解决方案

#1


我要是在公司看见就给你复制代码了,现在在家这个得写不少,明天再说吧

#2


告诉你方法吧
添加最简单了,在你绑定的 datatable 里面添加一个 新的 DataRow 在绑定就处理一个新行了

其他 更新,删除 去google 都有

#3


有一个比较费时费事的办法,你有时间和精力的话可以试试

安装VS2002,新建一个项目,然后在项目菜单中选择"添加Window窗体",在对话框中选择"数据窗体向导"

完成后分析里面的代码和功能(那时没DataGridView,是DataGrid)

VS2005后,这个功能没了,不过这个功能的确问题很多,不做大量修改的话,基本上代码不能用,不过对于学ADD.net和数据绑定来说,是非常好的一个示例

#4


ADO.net 打成ADD.net了,汗........

#5


你把 datagridview 设置成 readonly=true ,允许用户插入数据,点插入的时候,把 readonly=False,下面就出插入条了。
保存 用
SqlCommandBuilder sqlbui = new SqlCommandBuilder(dataAdapter);
dataAdapter.Update(dataSet,"表名");
然后刷新 datagridview 
删除是:
Convert.ToInt32(datagridview.SelectedRows[0].Cells[0].Value) 获取你选中的那行的 第一个格的值,一般都是保存的主键,且是隐藏列
用这个获得主键值,写删除语句就可以了。

#6


dataset绑定datagridview,写个循环,insert到数据库。
保存按钮SQL语句:
insert into 表 (列1,列2) values ('" + ds.Tables[0].Rows[i][0].ToString() + "','" + ds.Tables[0].Rows[i][1].ToString() + "')

#7


感谢大家的提醒和帮助,只是我还没有搞定,希望哪位兄弟能给出比较全面完整的code。谢谢你们!

#8


datagridview添加一行数据
DataSet ds = new DataSet();
SqlDataAdapter sda;

SqlCommandBuilder scb = new SqlCommandBuilder(sda);
sda.Update(ds);
this.dataGridView1.DataSource = ds.Tables[0];
实现更新,重新绑定

#9


我用的环境是C#2008,SQL2005,主要需要“添加”按钮的代码

#10


添加:
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);

#11


保存:
这个对于你的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

#12


加入到了数据库里面后,datagridview.refresh方法就可以了。datagridview添加行在帮助文档里面看。

#13


感谢大家的帮助,我解决问题了!感谢!

#1


我要是在公司看见就给你复制代码了,现在在家这个得写不少,明天再说吧

#2


告诉你方法吧
添加最简单了,在你绑定的 datatable 里面添加一个 新的 DataRow 在绑定就处理一个新行了

其他 更新,删除 去google 都有

#3


有一个比较费时费事的办法,你有时间和精力的话可以试试

安装VS2002,新建一个项目,然后在项目菜单中选择"添加Window窗体",在对话框中选择"数据窗体向导"

完成后分析里面的代码和功能(那时没DataGridView,是DataGrid)

VS2005后,这个功能没了,不过这个功能的确问题很多,不做大量修改的话,基本上代码不能用,不过对于学ADD.net和数据绑定来说,是非常好的一个示例

#4


ADO.net 打成ADD.net了,汗........

#5


你把 datagridview 设置成 readonly=true ,允许用户插入数据,点插入的时候,把 readonly=False,下面就出插入条了。
保存 用
SqlCommandBuilder sqlbui = new SqlCommandBuilder(dataAdapter);
dataAdapter.Update(dataSet,"表名");
然后刷新 datagridview 
删除是:
Convert.ToInt32(datagridview.SelectedRows[0].Cells[0].Value) 获取你选中的那行的 第一个格的值,一般都是保存的主键,且是隐藏列
用这个获得主键值,写删除语句就可以了。

#6


dataset绑定datagridview,写个循环,insert到数据库。
保存按钮SQL语句:
insert into 表 (列1,列2) values ('" + ds.Tables[0].Rows[i][0].ToString() + "','" + ds.Tables[0].Rows[i][1].ToString() + "')

#7


感谢大家的提醒和帮助,只是我还没有搞定,希望哪位兄弟能给出比较全面完整的code。谢谢你们!

#8


datagridview添加一行数据
DataSet ds = new DataSet();
SqlDataAdapter sda;

SqlCommandBuilder scb = new SqlCommandBuilder(sda);
sda.Update(ds);
this.dataGridView1.DataSource = ds.Tables[0];
实现更新,重新绑定

#9


我用的环境是C#2008,SQL2005,主要需要“添加”按钮的代码

#10


添加:
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);

#11


保存:
这个对于你的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

#12


加入到了数据库里面后,datagridview.refresh方法就可以了。datagridview添加行在帮助文档里面看。

#13


感谢大家的帮助,我解决问题了!感谢!