如何在已经绑定数据的dataGridView对象中动态添加记录

如何在已经绑定数据的dataGridView对象中动态添加记录,第1张

如果dataGridView对象dataGridView1已经绑定了数据源,则使用dataGridView1.insert()或者dataGridView1.add()函数时就会报错,那么如何解决这个问题呢?

方法总会有的,这里采用了中间量。

添加一个bindingSource的对象bindingSource1,并设置dataGridView1的DataSource属性为bindingSource1。

当点击“查询”或者进行其它 *** 作(如直接Load界面时)(这些 *** 作首次导致对dataGridView1的数据源进行绑定),可以按如下来做:

DataTable dt//全局变量

DataTable dt=从数据库中查询出来的数据集合;

bindingSource1.DataSource=dt

假如点击某个按钮,在当前已经绑定的dataGridView1中再插入一条新的记录,可这样写:

DataRow row = dt.NewRow()

row["数据库字段"] = ...

row["数据库字段"] = ...

...

dt.Rows.Add(row)

这样就可以了.不过这样还有一个问题,假如说当前dataGridView1没有数据,还没有进行查询,我先点击按钮添加一条记录到dataGridView1中则会出现"未将对象引用到实例"这种错误,那怎么解决这个问题呢?

下面继续:

在那个你点击的按钮事件里面写:

if (dt != null)

{

//添加到bindingSource绑定的DataTable中

DataRow row = dt.NewRow()

row["数据库字段"] = ...

row["数据库字段"] = ...

...

dt.Rows.Add(row) }

else

{

dataGridView1.DataSource = null

dataGridView1.Rows.Add()

dataGridView1["dataGridView1列名", dataGridView1.Rows.Count - 1].Value = ...

dataGridView1["dataGridView1列名", dataGridView1.Rows.Count - 1].Value = ...

...

}

好了,OK了~@@~

1.实质就是动态添加控件,new一个datagridview对象,然后使用

xxx.item.add()在窗体里add()就可以实现。

2.例程:

1

2

3

4

5

6

7

8

9

10

11

datatable

dt

=

new

datatable()

dt.columns.add("编号",typeof(int32))

dt.columns.add("名称",

typeof(string))

dt.columns.add("数量",

typeof(string))

datarow

dr

=

dt.newrow()

dr["编号"]

=

datagridview1.currentcell.owningrow.cells["编号"].tostring()

dr["名称"]

=

datagridview1.currentcell.owningrow.cells["名称"].tostring()

dt.rows.add(dr)

datagridview2.datasource

=

dt

弄个修改的按钮,然后做一个Click的事件

比如你的DataAdapter的对象为adapter,DataSet的对象为set

SqlCommandBuilder builder = new SqlCommandBuilder (adapter)

adapter.Update(set,"表名")

这样就可以了

验证的话在修改按钮那用IF判断如果符合条件就掉过。如果不符合可以用MessageBox来报错,然后Return出方法体就行了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7953046.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存