惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Recent Announcements
Recent Announcements
V
V2EX
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 聂微东
爱范儿
爱范儿
Jina AI
Jina AI
博客园 - Franky
IT之家
IT之家
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tailwind CSS Blog
博客园 - 三生石上(FineUI控件)
The Cloudflare Blog
M
MIT News - Artificial intelligence
aimingoo的专栏
aimingoo的专栏
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
J
Java Code Geeks
人人都是产品经理
人人都是产品经理
腾讯CDC
博客园_首页
月光博客
月光博客
有赞技术团队
有赞技术团队
C
Check Point Blog
Microsoft Security Blog
Microsoft Security Blog
MyScale Blog
MyScale Blog

博客园 - cobbles

递归和迭代(Recursion and Iteration) 基本查找算法 位、字节、字长、频率、时钟周期、带宽 缓冲区 套接字同步与异步 原码、补码和反码 confluence [转]Groovy和Grails简介 [转]关于BI的一个故事 参考书目 [网址]db2管理 [转]用于数据仓库的 DB2 产品 [转]把GridView的内容输出到Excel的两点注意 将DataGrid生成excel word 访问IIS元数据库失败 [转]用javascript判断窗口关闭事件 asp调用Web Service Typed Vs. Untyped DataSets Database Normalization Basics
Typed DataSets in .NET
cobbles · 2007-11-20 · via 博客园 - cobbles

Typed DataSets in .NET
By  February 03, 2004

As all of we know, we can specify the data type when we create a DataColumn for a DataTable. This is to enforce the runtime type-safety for the column so that only

Introduction

As all of we know, we can specify the Data type when we create a DataColumn for a DataTable. This is to enforce the runtime Type-safety for the column so that only data of specified data type can be stored in the column. In the same way, in most of the cases we prefer to make a DataSet itself as Type-safe so as to protect it from runtime mismatch. Hence Typed DataSets generate classes that expose each object the in the DataSet in Type-safe manner. These classes inherits directly from DataSet class.


Let us look into a small example which explain the Typed DataSet,

1. Using DataSet:

//Create DataAdapter
SqlDataAdapter daEmp = new SqlDataAdapter("SELECT empno,empname,empaddress FROM EMPLOYEE",conn);
//Create a DataSet Object
DataSet dsEmp = new DataSet();
//Fill the DataSet
daEmp.Fill(dsEmp,"EMPLOYEE");
//Let us print first row and first column of the table
Console.Write(dsEmp.Tables["EMPLOYEE"].Rows[0][0].ToString());
//Assign a value to the first column
dsEmp.Tables["EMPLOYEE"].Rows[0][0] = "12345";//This will generate runtime error as empno column is integer

If we observe above code we will get a runtime error when this code gets executed as the value assigned to the column (empno) does not take string value. Also any misspell of the column will generate a runtime error. And also we need to go thro the hierarchy to get the final value.


2. Using Typed DataSet:

//Create DataAdapter
SqlDataAdapter daEmp = new SqlDataAdapter("SELECT empno,empname,empaddress FROM EMPLOYEE",conn);
//Create a DataSet Object
EmployeeDS dsEmp = new EmployeeDS ();
//Fill the DataSet
daEmp.Fill(dsEmp,"EMPLOYEE");
//Let us print first row and first column of the table
Console.Write(dsEmp.EMPLOYEE[0].empno.ToString());
//Assign a value to the first column
dsEmp.EMPLOYEE[0].empno = "12345";//This will generate compile time error.

If we see above code, a typed dataset is very much similar to a normal dataset. But the only difference is that the sehema is already present for the same. Hence any mismatch in the column will generate compile time errors rather than runtime error as in the case of normal dataset. Also accessing the column value is much easier than the normal dataset as the column definition will be available in the schema.

How to Generate Typed DataSet?

A Typed DataSet can be generated in two ways,

  1. Using Visual Studio .NET IDE.
  2. Using XSD.exe (Using VS.Net command prompt)
    Open VS.Net command prompt and Type XSD /? For the help on this exe.

Creating a Typed DataSet using Visual Studio .NET IDE

Let me explain a step by step procedure to create a Typed DataSet,

1. Open VS .Net IDE and Click on File -> New -> Project and Select Console Application.
2. Enter name for the project. Say TypedDataSetTest.

 
3. Right click on the solution and click on Add-> Add New Item will show a dialog box.


 
Select DataSet from templates pane, give the name (Say TypedDs.xsd) and click on Open. This will add file by name TypedDs.xsd to the solution.


 
4. Click on the Server Explorer browse to the database and drop the table on the TypedDs.xsd file.

If we check the xml file for the same then we can see the schema for the table.

This dataset can be used in the same manner as the normal dataset to get the data.