C# - 自定义 DataSet 的使用
------------------------------------------------- SellProdectManager.cs ---------------------------------------------------
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
namespace Prodect.BLL
{
public class SellProdectManager
{
public static DataSet GetSellProdectDataSet() {
DataSet ds = new DataSet();//新建一个 DataSet
DataTable sellProdect = new DataTable("SellProdect");//新建一个 DataTable
DataColumn id = new DataColumn("Id", typeof(int));//新建 Id 列
id.AutoIncrement = true;//设置该列为自赠列
id.AutoIncrementSeed = 1;//设置该列的起始值
id.AutoIncrementStep = 1;//设置自赠的步长
DataColumn name = new DataColumn("Name",typeof(String));//新建 Name 列
name.AllowDBNull = false;//设置该列是否允许为空
DataColumn repertory = new DataColumn("Repertory",typeof(String));
repertory.AllowDBNull = false;
//往 DataTable(sellProdect) 的列集合填充新建的列
sellProdect.Columns.AddRange(new DataColumn[] { id, name, repertory });
//创建与 DataTable(sellProdect) 结构相同的行
DataRow row = sellProdect.NewRow();
row["Name"] = "电冰箱";
row["Repertory"] = 21;
//往 DataTable(sellProdect) 的行集合填充新建的行
sellProdect.Rows.Add(row);
//往 DataSet(ds) 的表集合填充 DataTable(sellProdect) 的这个新建的表
ds.Tables.Add(sellProdect);
// DataSet(ds) 更改确认
ds.AcceptChanges();
return ds;
}
}
}
---------------------------------------------------- Prodect.cs -------------------------------------------------------
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Prodect.BLL;
namespace Prodect
{
public partial class Prodect : Form
{
public Prodect()
{
InitializeComponent();
}
DataSet _sellProdect = null;
//窗体加载触发的事件
private void Prodect_Load(object sender, EventArgs e)
{
//获得 DataSet
_sellProdect = SellProdectManager.GetSellProdectDataSet();
//绑定 DataGridView 数据源
dgvSell.DataSource = _sellProdect.Tables["SellProdect"];
}
//行状态发生改变触发的事件
private void dgvSell_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e)
{
if (dgvSell.SelectedRows.Count == 0)
return;
//获得当前 DataGridView 所选择的行
DataGridViewRow row = dgvSell.SelectedRows[0];
//获取用于填充行的数据绑定对象,然后强制转换成(DataRowView)
DataRowView rv = row.DataBoundItem as DataRowView;
txtName.Text = rv["Name"].ToString();
txtPrice.Text = rv["Price"].ToString();
txtCount.Text = rv["Repertory"].ToString();
}
//删除按钮事件
private void btnDel_Click(object sender, EventArgs e)
{
if (dgvSell.SelectedRows.Count == 0)
return;
//获得当前 DataGridView 所选择的行
DataGridViewRow row = dgvSell.SelectedRows[0];
//获取用于填充行的数据绑定对象,然后强制转换(DataRowView)
DataRowView rv = row.DataBoundItem as DataRowView;
//删除选择的该行
rv.Delete();
}
//保存修改按钮事件
private void btnSave_Click(object sender, EventArgs e)
{
//DataSet(_sellProdect) 确认更新
_sellProdect.AcceptChanges();
}
//撤消修改按钮事件
private void btnReject_Click(object sender, EventArgs e)
{
//DataSet(_sellProdect) 撤消更新
_sellProdect.RejectChanges();
}
}
}
C# - 自定义 DataSet 的使用的更多相关文章
- 自定义DataSet
//创建数据集 DataSet dataSet = new DataSet(); //创建虚拟数据表 DataTable datatable = new DataTable(); //获取列集合,添加 ...
- DataSet和DataTable详解
先构建一个结构与用户请求数据结构相同的DataTable,然后将用户的请求数据填充到构建好的DataTable中,最后将DataTable添加到DataSet中. DataTable,,DataCol ...
- [Pytorch]PyTorch Dataloader自定义数据读取
整理一下看到的自定义数据读取的方法,较好的有一下三篇文章, 其实自定义的方法就是把现有数据集的train和test分别用 含有图像路径与label的list返回就好了,所以需要根据数据集随机应变. 所 ...
- 解析大型.NET ERP系统架构设计 Framework+ Application 设计模式
我对大型系统的理解,从数量上面来讲,源代码超过百万行以上,系统有超过300个以上的功能,从质量上来讲系统应该具备良好的可扩展性和可维护性,系统中的功能紧密关联.除去业务上的复杂性,如何设计这样的一个协 ...
- 《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
先看一下我要实现的功能界面: 这个界面的功能在图中已有展现,课程分配(教师教授哪门课程)在之前的页面中已做好.这个页面主要实现的是授课,即给老师教授的课程分配学生.此页面实现功能的步骤已在页面 ...
- 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
摘自:http://blog.csdn.net/mazhaojuan/article/details/8592015 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来 ...
- NET ERP系统架构设计
解析大型.NET ERP系统架构设计 Framework+ Application 设计模式 我对大型系统的理解,从数量上面来讲,源代码超过百万行以上,系统有超过300个以上的功能,从质量上来讲系统应 ...
- 一个操作oracle的c#类 含分页
有别于以前的一个OracleHelper,这个版各有所长,MARK下. using System; using System.Data; using System.Data.OracleClient; ...
- [深度学习] pytorch利用Datasets和DataLoader读取数据
本文简单描述如果自定义dataset,代码并未经过测试(只是说明思路),为半伪代码.所有逻辑需按自己需求另外实现: 一.分析DataLoader train_loader = DataLoader( ...
随机推荐
- js原生 + jQuery实现页面滚动字幕
js原生/jQuery实现页面滚动字幕效果 17:45:49 在新闻列表或者文章列表信息等页面中很容易要求实现字幕滚动的效果,以下为简单的实现页面中滚动字幕的效果 1.jQuery实现页面滚动字幕效果 ...
- Java面向对象知识点精华
- Oracle临时表on commit preserver rows和on commit delete rows区别
Oracle 临时表:在 Oracle 中创建一张表,这个表不用于其他的什么功能,主要用于自己的软件系统一些特有功能才用的,而当你用完之后表中的数据就没用了. Oracle 的临时表创建之后基本不占用 ...
- js获取随机颜色
var bg_colour = Math.floor(Math.random() * 16777215).toString(16); bg_colour = "#" + (&quo ...
- zepto.js 处理Touch事件(实例)
处理Touch事件能让你了解到用户的每一根手指的位置,在touch事件触发的时候产生,可以通过touch event handler的event对象取到,如果基于zepto.js开发,一般是通过eve ...
- UVA1600 Patrol Robot
题意: 求机器人走最短路线,而且可以穿越障碍.N代表有N行,M代表最多能一次跨过多少个障碍. 分析: bfs()搜索,把访问状态数组改成了3维的,加了个维是当前能跨过的障碍数. 代码: #includ ...
- jquery知识点积累
网上资源汇总学习: jquery的选择器是CSS1-3,xpath的结合物.JQuery提取了这二种查询语言最好的部分,创造出了最终的jquery表达式查询语言. xpath是一门在xml文档里查找信 ...
- Android学习之listview的下拉刷新、上拉载入
本例是在上例的基础上完成的.本例实现的listview上拉载入.下拉刷新功能,是在开源网站上别人写好的listview,主要是对listview的控件进行重写,添加了footer和header. 1. ...
- Jquery Mobile 记录
使用的是C#语言,.Net+Jquery Mobile 框架开发 1.使用水平组切换操作 <fieldset id="Tfdset1" data-role="con ...
- 如果ie6跳转
try { (function(e) { /i.test(navigator.userAgent)) { window.location = "jump.html"; return ...