如何实现c# winform DataGridView添加一行,添加数据后,保存到数据库?

如何实现c# winform DataGridView添加一行,添加数据后,保存到数据库?,第1张

1、点击添加,实例化一个DataGridView的行对象DataRow 然后把这个对象添加到DataGridView中,你的DataGridView要是可编辑状态,然后编辑数据,点保存循环读取DataGridView的行数据,存到实体类中,在通过后台SQL保存到数据库。

2、将datagridview于数据库中对应的表进行绑定,绑定完成之后直接在datagridview中进行添加就可以,自动在数据库中添加并保存。

3、创建一个表结构,每次新增的时候往表里面加一条记录,然后DataGridView再绑定表就可以了。保存的时候连接数据库+sql就完成了。

4、就是正常的添加就可以了啊。首先连接数据库 而后插入数据库的表。

5、gridview没有自带这种功能,只自带了,编辑删除(也可能是我不知道,我没用过直接可以添加一行新的)你可以模仿一个这样的功能,用js动态添加一行textbox,每个字段对应一个,你把数据添加后,点击保存,就ok了,当然你的动态添加的textbox要在gridview下面,样式要对齐,感觉上是gridview添加了一行。

如果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了~@@~

向绑定的数据里面添加就可以了,

比如:你绑定的是一个DataTable对象,就往DataTable对象添加行;

如果你绑定的是一个List对象,就往List对象添加项;

即:改变数据即可改变datagridview


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

原文地址: https://outofmemory.cn/bake/11173999.html

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

发表评论

登录后才能评论

评论列表(0条)

保存