c#winform 的dataset的datatable中怎么手动添加行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#winform 的dataset的datatable中怎么手动添加行相关的知识,希望对你有一定的参考价值。

//1)从数据集中取出一个已有的表
DataTable tbl = ds.Tables[0];
//2)创建新行row
DataRow row = tbl.NewRow();
//3)对row各个字段赋值
row[0] = "某某某";
row[1] = ……
……
//4)将新建的行加入到表中
tbl.Rows.Add(row);

参考技术A ========== 方法一
DataTable tblDatas = newDataTable("Datas");
DataColumn dc = null;

//赋值给dc,是便于对每一个datacolumn的操作
dc =tblDatas.Columns.Add("ID",Type.GetType("System.Int32"));
dc.AutoIncrement= true;//自动增加
dc.AutoIncrementSeed = 1;//起始为1
dc.AutoIncrementStep = 1;//步长为1
dc.AllowDBNull = false;//

dc = tblDatas.Columns.Add("Product",Type.GetType("System.String"));
dc = tblDatas.Columns.Add("Version",Type.GetType("System.String"));
dc = tblDatas.Columns.Add("Description",Type.GetType("System.String"));

DataRow newRow;
newRow = tblDatas.NewRow();
newRow["Product"] = "大话西游";
newRow["Version"] = "2.0";
newRow["Description"] = "我很喜欢";
tblDatas.Rows.Add(newRow);

newRow = tblDatas.NewRow();
newRow["Product"] = "梦幻西游";
newRow["Version"] = "3.0";
newRow["Description"] = "比大话更幼稚";
tblDatas.Rows.Add(newRow);

========== 方法二

DataTable tblDatas = newDataTable("Datas");
tblDatas.Columns.Add("ID", Type.GetType("System.Int32"));
tblDatas.Columns[0].AutoIncrement = true;
tblDatas.Columns[0].AutoIncrementSeed = 1;
tblDatas.Columns[0].AutoIncrementStep = 1;

tblDatas.Columns.Add("Product",Type.GetType("System.String"));
tblDatas.Columns.Add("Version",Type.GetType("System.String"));
tblDatas.Columns.Add("Description",Type.GetType("System.String"));

tblDatas.Rows.Add(newobject[]null,"a","b","c");
tblDatas.Rows.Add(newobject[] null, "a", "b", "c" );
tblDatas.Rows.Add(new object[] null, "a", "b", "c" );
tblDatas.Rows.Add(new object[] null, "a", "b", "c" );
tblDatas.Rows.Add(new object[] null, "a", "b", "c" );

========== 方法三

DataTable table = new DataTable ();

//创建table的第一列
DataColumn priceColumn = new DataColumn();
//该列的数据类型
priceColumn.DataType = System.Type.GetType("System.Decimal");
//该列得名称
priceColumn.ColumnName = "price";
//该列得默认值
priceColumn.DefaultValue =50;

// 创建table的第二列
DataColumn taxColumn = new DataColumn();
taxColumn.DataType = System.Type.GetType("System.Decimal");
//列名
taxColumn.ColumnName = "tax";
//设置该列得表达式,用于计算列中的值或创建聚合列
taxColumn.expression_r_r = "price *0.0862";
// Create third column.
DataColumn totalColumn = new DataColumn();
totalColumn.DataType = System.Type.GetType("System.Decimal");
totalColumn.ColumnName = "total";
//该列的表达式,值是得到的是第一列和第二列值得和
totalColumn.expression_r_r = "price + tax";

// 将所有的列添加到table上
table.Columns.Add(priceColumn);
table.Columns.Add(taxColumn);
table.Columns.Add(totalColumn);

//创建一行
DataRow row = table.NewRow();
//将此行添加到table中
table.Rows.Add(row);

//将table放在试图中
DataViewview = new DataView(table);
dg.DataSource = view;

dg.DataBind();

Winform datagridview checkbox全选问题

为什么点击全选按钮之后,其他行checkbox都能选中,就是第一行不能选中呢?包括删除多条数据,有没有这方面的源码供参考一下,十分感谢!!

我推测你应该是使用DataSet绑定到DataGridView的,
当按下全选按钮时,通过更改DataSet(DetaTable)中的值来达到选中的目的,由于第一行是当前行,当前行的编辑没有结束之前是不会更新到DataGridView上的。
你可以调用一下DataGridView的EndEdit()方法,应该就可以了。

如果不行,你把你全选按钮的代码贴出来。
参考技术A 肯定是起始行索引搞错了啊,起始行的索引是0,并不是1 参考技术B 自己调试看第一个元素为什么没被选中

以上是关于c#winform 的dataset的datatable中怎么手动添加行的主要内容,如果未能解决你的问题,请参考以下文章

vs2008的c#winform开发,关于listview的数据绑定

在C#WINFORM程序里,怎么获取DATASET中TABLE[0]表的第一行第一个元素?

C#winform中如何把表导出到EXCEL

winform AutoCompleteCustomSource.AddRange

c#winform datagridview控件怎么在上面直接修改并且更新到sql数据库

winform dataset怎么遍历方法