如何在已经绑定数据的dataGridView对象中动态添加记录
1个回答
2015-01-01 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:25897
获赞数:1464984
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。
向TA提问 私信TA
关注
展开全部
如果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了~@@~
方法总会有的,这里采用了中间量。
添加一个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了~@@~
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询