C#使用SqlDataAdapter对象获取数据的方法

2019-12-26 18:03:31王旭

DataSet中数据的更新

如果DataSet中的数据需要更新,在调用Fill方法之前应该先清除DataSet或DataTable中的数据,这样可以确保DataTable中不会出现重复的数据行,也不会出现数据库中已经不存在的数据行。

3. 将查询结果映射到DataSet

TableMappings映射

TabbleMappings集合控制SqlDataAdapter如何将DataSet映射到数据库。如果保持TabbleMappings集合为空,调用Fill方法,然后将DataSet作为参数,而不指定表名,SqlDataAdapter将假定您希望使用一个名为"Table"的DataTable来装载数据。

SqlDataAdapter.TableMappings.Add("Table","Employees")

此语句的作用是将DataSet中原来名字为"Table"的DataTable命名为"Employees",DataSet填充数据时,按查询结果集的顺序依次填充DataSet中的Table、Table1、Table2……,所以给DataTable命名时需留意该DataTable是否为当前将要使用的对象。

TableMappings和ColumnMappings的AddRange方法

构造并赋值DataTableMapping、DataColumnMapping数组,再调用它们的AddRange方法将该集合整体添加到映射数组。


DataTableMapping tableMap;
tableMap=da.TableMapping.Add("Table","Employees");
DataColumnMapping[] columnMaps;
columnMaps=new DataColumnMapping[];
{new DataColumnMapping ("EmpID","EmployeeID"),
new DataColumnMapping ("LName","LastName")
}
tableMap.ColumnMapping.AddRange(columnMaps);

MissingMappingAction属性

当SqlDataAdapter提取查询结果来填充DataSet时,它将检查TableMappings集合,如果存在结果集中列不在TableMappings集合时,它将查看MissingMappingAction属性的值来决定如何操作。

Passthrough 映射中没有出现的列仍然填充到DataSet,采用原结果集的名称;

Ignore  忽略映射中没有出现的列;

Error 在出现不匹配的情况下引发异常;



注:相关教程知识阅读请移步到c#教程频道。