什么是.Net中的强类型数据集?能否用清晰简洁的例子解释一下?
同时,强类型和弱类型数据集有什么区别?
什么是.Net中的强类型数据集?能否用清晰简洁的例子解释一下?
同时,强类型和弱类型数据集有什么区别?
强类型数据集是基于数据库模式生成的。它们由从DataSet、DataTable和DataRow派生的类组成。数据库列成为TableRow派生类的正确类型属性。
未经类型化的数据集简单地意味着直接使用数据集,而不是使用后代。所有列访问都必须进行类型转换。
没有弱类型数据集这样的东西。
有类型数据集与无类型数据集
一个有类型的数据集是从基本的DataSet类派生而来,并使用存储在.xsd文件中的Dataset Designer中的信息生成一个新的强类型数据集类。模式(表、列等)的信息被生成并编译成这个新数据集类的一组一流的对象和属性。因为有类型的数据集继承了基本的DataSet类,所以有类型的类具备了DataSet类的所有功能,并且可以用作需要一个DataSet类实例作为参数的方法。
相比之下,无类型的数据集没有对应的内置模式。与有类型数据集一样,无类型数据集包含表、列等 - 但这些仅作为集合公开。(但是,在手动创建表和其他数据元素后,您可以使用数据集的WriteXmlSchema方法将数据集的结构导出为模式。)
有类型和无类型数据集的数据访问对比
有类型数据集的类具有一个对象模型,其中其属性采用表和列的实际名称。例如,如果您正在使用有类型的数据集,则可以使用以下代码引用列:
C#VBCopy
// This accesses the CustomerID column in the first row of the Customers table.
string customerIDValue = northwindDataSet.Customers[0].CustomerID;
J#Copy
// This accesses the CustomerID column in the first row of the Customers table.
String customerIDValue =
northwindDataSet.get_Customers().get_Item(0).get_CustomerID();
C#VBCopy
string customerIDValue = (string)
dataset1.Tables["Customers"].Rows[0]["CustomerID"];
J#Copy
String customerIDValue = (String)
dataset1.get_Tables().get_Item("Customers").get_Rows().get_Item(0).get_Item("CustomerID");