DataSet强类型、TableAdapter的使用
简答使用可以看https://www.cnblogs.com/namejr/p/10411920.html中的“先来简单介绍dataset和datatable”
DataSet强类型:
WebForm1.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication2.WebForm1" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
</div>
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
<asp:GridView ID="GridView2" runat="server">
</asp:GridView>
<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Button" />
<asp:Button ID="Button3" runat="server" OnClick="Button3_Click" Text="Button" />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label><asp:Button ID="Button4" runat="server" Text="Button" OnClick="Button4_Click" />
<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label><asp:Button ID="Button5" runat="server" Text="Button" />
</form>
</body>
</html>
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
WebForm1.aspx.cs
protected void Button1_Click(object sender, EventArgs e)
{
// 数据查询
ProductDataSet ds = new ProductDataSet();
var daProduct = new ProductDataSetTableAdapters.ProductTableAdapter(); // 默认使用了getDate()方法
var daCategory = new ProductDataSetTableAdapters.CategoryTableAdapter();
daProduct.Fill(ds.Product);
daCategory.Fill(ds.Category);
// 数据绑定显示
this.GridView1.DataSource = ds.Product;
this.GridView2.DataSource = ds.Category;
this.DataBind();
} protected void Button2_Click(object sender, EventArgs e)
{
// 插入数据
new ProductDataSetTableAdapters.CategoryTableAdapter().Insert(, "平板");
// 同理,还有delete、Update
} protected void Button3_Click(object sender, EventArgs e)
{
// 除了上面的Button2里面的增删改查操作,还有下面这些方法
ProductDataSet ds = new ProductDataSet();
var daCategory = new ProductDataSetTableAdapters.CategoryTableAdapter();
daCategory.Fill(ds.Category);
/* 删除
ds.Category.FindByCategoryID(2).Delete(); // 根据CategoryID进行删除
ds.Category.RemoveCategoryRow(ds.Category.FindByCategoryID(2)); // 进行先查找row在根据ID进行删除
*/
/* 添加
ds.Category.AddCategoryRow(4, "图书");
var newRow = ds.Category.NewCategoryRow();
newRow.CategoryID = 5;
//newRow.CategoryName = "视频";
newRow["CategoryName"] = "视频";
ds.Category.AddCategoryRow(newRow);
*/
var oldRow = ds.Category.FindByCategoryID();
oldRow.CategoryName = "cellPhone";
daCategory.Update(ds.Category);
}
protected void Button4_Click(object sender, EventArgs e)
{
// 显示自定义的配置
this.Label1.Text = string.Format("{0}", new ProductDataSetTableAdapters.CategoryTableAdapter().ScalarQueryCount().Value);
}
protected void Button5_Click(object sender, EventArgs e)
{
// 关联配置的显示(外键)
ProductDataSet ds = new ProductDataSet();
var daProduct = new ProductDataSetTableAdapters.ProductTableAdapter();
var daCategory = new ProductDataSetTableAdapters.CategoryTableAdapter();
daProduct.Fill(ds.Product);
daCategory.Fill(ds.Category);
var Product = ds.Product.FindByProductID(2); // 获取对应的product的对应的索引
var category = Product.CategoryRow; // 进行关联
this.Label2.Text = string.Format("商品:{0}的类别是{1}", Product.ProductNAME, category.CategoryName);
}
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
ProcudtDataSet1.xsd
构建这个东西只需要进行右键添加“数据集(DataSet1.xsd)”,将名字修改为对应数据库表的前缀即可。
关于构建的两种方法:一种是使用tableAdapter进行配置;另一种是直接将数据库表直接拖拽过来即可(拖拽过来的好处是会直接显示对应的关联关系)
如果自己有需要,可以根据用户的需求进行配置SQL查询语句,例如本例子中,可以进行右键“CategoryTableAdapter”进行添加(如添加查询)或者配置设计
DataSet强类型、TableAdapter的使用的更多相关文章
- LINQ(LINQ to DataSet)
http://www.cnblogs.com/SkySoot/archive/2012/08/21/2649471.html DataTable.Select()方法使用和 SQL 相似的过滤语法从 ...
- 自学_数据库<三>
数据库 数据库概述 DBMS(DataBase Management System,数据库管理系统)和数据库.平时谈到"数据库"可能有两种含义:MSSQLServer.Oracle ...
- .NET常见面试题
面试题 1 什么是 CTS.CLS 和CLR 公共语言运行库(CLR)是一个CLI 的一个实现,包含了.NET 运行引擎和符合 CLI 的类库. 通用类型系统(CTS)包含在微软公司提交的 CLI ...
- SQL数据库相关
数据库相关知识点 SQL, 对表的理解, 对表的主键, 外键的理解, 视图, 为什么要有视图, 视图有什么功能, 视图与表有什么区别 主键是唯一标识的一条记录,不能重复,不能为空. 表的外键是另一个表 ...
- DataGridView控件绑定数据源
前言: 近期听说DataGridView控件能直接绑定数据源.而不用穿越这层那层的忍辱负重.获取数据.真是高兴的屁颠屁颠的.后来一想二狗肯定不会弄.特意写了一个笨蛋版的教程--也算记录生活.欢度端午了 ...
- 强类型Dataset使用事务(改进原有方法)
以下部份转自:http://blog.csdn.net/nfbing/article/details/5803980 关于强类型Dataset的用法和好处,我就不再多说,网上关于这方面的资料很多 , ...
- 使用强类型DataSet增加数据并获取自动增长的ID
使用强类型的DataSet可以方便的操作数据库:有时候我们会对表的ID设置为自动增长,并且需要在插入数据后获取新插入数据的ID,按以下方法即可达到目的: 一. 首先建立一个表,id为自动增加, ...
- 强类型DataSet的使用简明教程
关于弱类型 DataSet的缺点: 无论何时从 DataSet检索值都是以Object类型返回,需要对它进行类型转换: 给其它开发者使用 时无法知道哪些列可用: 运行时才能知道所 有列名,数据绑定麻烦 ...
- 2强类型DataSet (2011-12-30 23:16:59)转载▼ 标签: 杂谈 分类: Asp.Net练习笔记 http://blog.sina.com.cn/s/blog_9d90c4140101214w.html
强类型DataSet (2011-12-30 23:16:59) 转载▼ 标签: 杂谈 分类: Asp.Net练习笔记 using System; using System.Collections.G ...
随机推荐
- nginx isis
Nginx+IIS简单的部署 随着互联网项目用户访问量不断上升,单点web服务器是无法满足大型高并发高负载的业务处理的,为了给web服务器做负载均衡方案,打算采用Nginx搭建负载均衡服务器,把用 ...
- CSS——盒子模型
一.盒子模型: 模型如下: 如图:盒子模型包括:margin.padding.border.content四部分. margin:外边距,透明,能够显示父级的背景颜色等.表示元素与元素之间的间隔或者说 ...
- 如何利用MATLAB并行计算缩短程序运行时间
本来CPU就是双核,不过以前一直注重算法,没注意并行计算的问题.今天为了在8核的dell服务器上跑程序才专门看了一下.本身写的程序就很容易实现并行化,因为beamline之间并没有考虑相互作用.等于可 ...
- div的作用
<div></div>主要是用来设置涵盖一个区块为主,所谓的区块是包含一行以上的数据,所以在<div></div>的开始之前与结束后,浏览都会自动换行, ...
- 昨天的笔试题, StringBuffer
代码: public static void switchStr(StringBuffer x, StringBuffer y) { x.append(y); System.out.println(& ...
- springmvc 注解式开发 处理器方法的返回值
1.返回void -Ajax请求 后台: 前台: 返回object中的数值型: 返回object中的字符串型: 返回object中的自定义类型对象: 返回object中的list: 返回object中 ...
- linux下vtune使用
安装:http://www.cnblogs.com/jiu0821/p/5943533.html 终端输入amplxe-gui,打开vtune界面. 点击new project,进入project p ...
- python struct.pack中的对齐字节问题
最近测试涉及到了序列字节化相关问题,碰到一个头疼的问题 buff = struct.pack("3s","B00") print repr(buff) 输 ...
- Luogu 2151 [SDOI2009]HH去散步
BZOJ 1875 矩阵乘法加速递推. 如果不要求不能走同一条边,那么直接构造出矩阵快速幂即可,但是不走相同的道路,怎么办? 发现边数$m$也很小,我们直接把$2 * m$开成一个矩阵,相当于记录上一 ...
- Swing窗口Linux下不支持最大化问题
Swing窗口Linux下不支持最大化问题 摘自:https://www.linuxidc.com/Linux/2009-06/20519.htm [日期:2009-06-17] 来源:www.qua ...
