WinForm中利用DataSet向DataGridView中添加多行数据
来源:互联网 发布:linux cp创建文件夹 编辑:程序博客网 时间:2024/06/03 15:59
怎样利用DataSet向DataGridView中添加数据呢?很简单:编写添加按钮的单击事件方法
示例代码:
private void btnAdd_Click(object Sender,EventArgs e)
{
//创建DataSet对象
DataSet ds = new DataSet();
//创建DataTable对象
DataTable dt = new DataTable();
//创建列
dt.Columns.Add("姓名",typeof(string));
dt.Columns.Add("年龄",typeof(int));
//创建行
DataRow row = dt.NewRow();
//添加数据
row[0] = this.txtName.Text.Trim();
row[1] = this.txtAge.Text.Trim();
//将行添加到数据表的行集合中
dt.Rows.Add(row);
//将数据表添加到DataSet中
ds.Tables.Add(dt);
//将DataSet中的表添加到DataGridView之中
this.dataGridView1.DataSource = ds.Tables[0];
}
但是这样,只能一次添加一条数据,而且在DataGridView中显示的始终是一条数据,不能实现数据累加,
那该怎么办呢?
其实很简单,只需将上面的代码稍稍改动一下位置,不用添加也不用减少代码。
首先,在窗体类中创建两个全局对象,即DataSet和DataTable对象
示例代码:
//创建DataSet对象
DataSet ds = new DataSet();
//创建DataTable对象
DataTable dt = new DataTable();
其次,在窗体加载事件之中创建数据表的列,同时将数据表添加到DataSet之中
示例代码:
private void Form1_Load(object sender, EventArgs e)
{
//创建数据列
dt.Columns.Add("姓名",typeof(string));
dt.Columns.Add("年龄",typeof(int));
ds.Tables.Add(dt);
}
再次,添加按钮的单击事件只负责添加数据行并向行中添加数据,将行添加到行集合中,同时显示在 DataGridView之中
示例代码:
private void button1_Click(object sender, EventArgs e)
{
//添加行
DataRow row = dt.NewRow();
//添加数据
row[0] = this.txtName.Text.Trim();
row[1] = this.txtAge.Text.Trim();
//将行添加到数据表的行集合中
dt.Rows.Add(row);
//将DataSet中的表添加到DataGridView之中
this.dataGridView1.DataSource = ds.Tables[0];
}
到此,即可实现利用DataSet向DataGridView中添加多行数据的效果
1. 了解DataSet加载xml文件形成的结构
2.读取,修改,删除xml节点实例
3. 一点说明及代码下载
<1>. 了解DataSet加载xml文件形成的结构
如果是对于下面的xml文件加载进ds的话,通过vs的调试窗口,得到加载形成的ds结构如下:
<bookstore>
<book genre="fantasy" ISBN="2-3631-4">
<title>Oberon's Legacy</title>
<author>Corets, Eva</author>
<price>5.95</price>
</book>
</bookstore>
通过上面的观察,可以看出ds在加载xml文件时,将节点的属性(例如genre)全部加载到DataRow中。
<2>. 读取,修改,删除xml节点实例
针对上面的xml文件的读取,修改操作就比较简单,仅仅是对ds的一些操作:关键代码如下:
DataSet ds = new DataSet();
// 读取数据
ds.ReadXml("./bookstore.xml");
// 显示数据
Console.WriteLine(ds.Tables[0].Rows[0]["title"]);
// 需要首先循环读取,查找到数据,然后修改数据
ds.Tables[0].Rows[0]["title"] = "change title";
// 插入数据
DataRow row = ds.Tables[0].NewRow();
// 向row中添加数据
row["genre"] = "genre";
row["ISBN"] = "ISBN";
row["title"] = "title";
row["author"] = "author";
row["price"] = "price";
ds.Tables[0].Rows.Add(row);
// 删除数据
DataRow r = ds.Tables[0].Rows[0];
ds.Tables[0].Rows.Remove(r);
// 将修改完成的数据保存
ds.WriteXml("./bookstore.xml");
Console.ReadKey();
上面代码能够解决xml原先存在节点的情况,如果原先xml文件中没有节点,只能手动添加,需要手动编写代码,下面是一个简单示例:
ds.ReadXml(xmlPath);
生成如下格式的xml文件:
<bcaster>
<item item_url="HomePageBanners/4e504e3e-a30b-47da-acfd-2a07237dc9e2.jpg" link="./ViewPictureNews.aspx?id=4e504e3e-a30b-47da-acfd-2a07237dc9e2" itemtitle="" />
</bcaster>
<3>. 一点说明及代码下载
由于上面的方法在每次读写时都需要重新生成一个xml文件(ds.WriteXml("./bookstore.xml");),即是将原先的文件覆盖,所以说上面的方法对于较小的文件有比较好的性能,同时能够减少使用System.Xml命名空间中程序出错。
- WinForm中利用DataSet向DataGridView中添加多行数据
- C#Winform技术,利用DataGridViewRow向DataGridView中添加数据
- Winform中向DataGridView控件添加数据
- 向dataset中添加datatable
- 在Winform中向DataGridView控件添加数据的三种方式
- 在Winform中向DataGridView控件添加数据的三种方式
- Winform中DataGridView有自动添加行!
- WinForm中给DataGridView添加 自动编号
- C# winform DataGridView中添加按钮
- 关于PostgreSQL向数据库表中添加行数据
- 不用数据库向 DataSet 中添加数据
- 获取datagridview中checkbox选中的多行数据
- 【WinForm】线程中向listview添加数据
- datagridview 手动添加行数据
- C#中向DataGridView中添加DataTable数据
- WinForm中利用DataGridView控件对数据进行批量操作
- WinForm中利用DataGridView控件对数据进行批量操作
- Winform中 DataGridView添加 CheckBox列的问题集锦
- 大家的问题挑选回答
- 【LCA】 POJ 1330 Nearest Common Ancestors
- Android 之窗口小部件高级篇--App Widget 之 RemoteViews
- Android开发之GPS定位获取位置
- Android web与progressbar结合使用
- WinForm中利用DataSet向DataGridView中添加多行数据
- 程序的原子性
- Java深入 - Java 流
- Linux如何解决动态库的版本控制
- 非聚集索引结构
- mysql查询字段值为数字
- 3_C# 实现VMS客户端——使用log4net 写日志
- Leetcode之Divide Two Integers
- Ubuntu 12.04 LTS安装VMware Tools:无法找到kernel header path的问题