我的datagridview 设置成可编辑的,DataGridViewRow 绑定了一个数据集
打开窗口以后
默认添加了一行空行,当鼠标在第一行的列上输入数值的时候又添加了一行空行现在我用程序来实现填充行的值 ,在一个按钮事件中添加
dgv_DataGridViewRow .SelectedRows[0].Cells[0].Value= "asd"l;这样来赋值,,但这样就不产生新行了采用下面的这种方式添加一行
出现错误提示 当数据被绑定时无法以编程方式添加新行。DataGridViewRow row = new DataGridViewRow();
row.CreateCells(this.dataGridView1);
this.dataGridView1.Rows.Insert(0, row);
打开窗口以后
默认添加了一行空行,当鼠标在第一行的列上输入数值的时候又添加了一行空行现在我用程序来实现填充行的值 ,在一个按钮事件中添加
dgv_DataGridViewRow .SelectedRows[0].Cells[0].Value= "asd"l;这样来赋值,,但这样就不产生新行了采用下面的这种方式添加一行
出现错误提示 当数据被绑定时无法以编程方式添加新行。DataGridViewRow row = new DataGridViewRow();
row.CreateCells(this.dataGridView1);
this.dataGridView1.Rows.Insert(0, row);
数据源有 dt.Rows.Add(第一列值,第二列值,第三值列); 这种方法吗?
/// 方法实现把dgv里的数据完整的复制到一张内存表
/// </summary>
/// <param name="dgv">dgv控件作为参数</param>
/// <returns>返回临时内存表</returns>
public static DataTable GetDgvToTable(DataGridView dgv)
{
DataTable dt=new DataTable();
for (int count = 0; count < dgv.Columns.Count; count++)
{
DataColumn dc = new DataColumn(dgv.Columns[count].Name.ToString());
dt.Columns.Add(dc);
}
for (int count = 0; count < dgv.Rows.Count; count++)
{
DataRow dr = dt.NewRow();
for (int countsub = 0; countsub < dgv.Columns.Count; countsub++)
{
dr[countsub] = dgv.Rows[count].Cells[countsub].Value.ToString();
}
dt.Rows.Add(dr);
}
return dt;
}
这样反复多次
最后点一个保存按钮 保存datagridview中的所有数据,,因为如果要保存所有数据的话现在做了一个方法需要设置好数据源现在如果不用程序赋值的话 手工点每个cell输入数据的时候自动就生成了一个新行。
你的需求一句话就搞定:
datagridview.Rows.add();
.Rows.insertat(DataTable.NewRow,位置),然后再绑定。
DataTable.Rows.Add(DataTable.NewRow)就是在最后一行加入一个空白行http://topic.csdn.net/u/20070121/12/658f9e02-7dfb-4c8e-94df-ceb508d02a17.html
绑定了一个数据源,比如说是 “select * from product where 1=2”
这个数据源不会有数据的
我用程序插入几行数据以后,
中间可以有修改删除
最后
点一个保存按钮 然后把这几行的数据统一保存到数据库。现在的问题是 打开窗口的时候 这个datagridview会自动生成一行,我用程序填入内容以后怎么再生成一个新行。
如果是不用程序来填充行,直接在单元格中输入数据的时候,输入一个数字之后,系统就自动生成一个新行。 我是想用这种效果。我不知道有没有人以前用过pb中的datawindow ,,就是想实现类似他的
datawindow.insertrow(0)
中间可能有删除行
datawindow.deleterow(0)
最后保存到数据库
datawindow.update()