03.wndatasource.md 4.8 KB

WnDataSource

数据源对象,用于与数据库进行交互。WnDataSource对象在调用模块主窗体的Assemble方法时装载,配置信息来源于窗体界面设计的数据源配置信息。

主要属性

WnDataSource主要有以下两个属性:

|属性|说明| |-|-| |KeyValues|类型为Hashtable,关键字集合,用于替换数据集中的关键字| |DataSets|类型为Hashtable,存储获取到的DataSet对象|

KeyValues中数据的来源

  • 可以在写代码的时候通过wnDataSource.KeyValues["xxx"]=xxx的方式赋值
  • 通过方法参数传递的关键字也会添加到KeyValues中

主要方法

WnDataSource主要有以下几个方法:

 public Hashtable GetDataSet(Hashtable ht);

 public Hashtable ExecSql(Hashtable ht);

 public Hashtable UpdateDataSet(Hashtable ht);

 public Hashtable RemoveDataSet(Hashtable ht);

GetDataSet

该方法是执行select语句,从数据库获取数据。获取的数据以DataSet的形式保存在DataSets属性中。

方法参数

参数是一个Hashtable,主要包含以下固定项:

|键|是否必须|说明| |-|-|-| |DataSetName|必须|数据集名称,程序将根据该名称获取要执行的SQL语句| |FacadeAlias|非必须|应用层别名,配置后将会到指定的应用层获取数据| |TableNames|非必须|获取数据集的所有表可以不传;获取一个表的数据传递对应表名即可;获取多个表则传递对应表名的数组|

返回值

返回值是一个Hashtable,主要包含以下项 |键|说明| |-|-| |IsSuccess|数据集执行是否成功,“1”表示成功,“0”表示失败|

ExecSql

该方法通过执行update和delete语句来与数据库进行交互。

方法参数

参数是一个Hashtable,主要包含以下固定项:

|键|是否必须|说明| |-|-|-| |DataSetName|必须|数据集名称,程序将根据该名称获取要执行的SQL语句| |FacadeAlias|非必须|应用层别名,配置后将会到指定的应用层执行SQL语句|

返回值

返回值是一个Hashtable,主要包含以下项 |键|说明| |-|-| |IsSuccess|数据集执行是否成功,“1”表示成功,“0”表示失败|

UpdateDataSet

通过DataSet更新数据库。

方法参数

参数是一个Hashtable,主要包含以下固定项:

|键|是否必须|说明| |-|-|-| |DataSetName|必须|数据集名称,程序将根据该名称获取要保存的DataSet| |FacadeAlias|非必须|应用层别名,配置后将会到指定的应用层保存数据| |TableNames|非必须|保存数据集的所有表可以不传;保存一个表的数据传递对应表名;保存多个表则传递对应表名的数组| |BeforeDataSetName|非必须|用于获取保存DataSet数据前要执行的SQL语句| |AfterDataSetName|非必须|用于获取保存DataSet数据后要执行的SQL语句| |ActionStep|必须|用于指明本次更新方法要执行哪些动作|

ActionStep

ActionStep是一个List<Act>的泛型,Act是我们自己封装的一个枚举类型,包含多个动作。

Act主要包含以下动作:

|动作|说明| |-|-| |CommitEdit|提交数据,将调用与DataSet中DataTable通信的WnGrid对象的CommitEdit方法| |AskIsUpdate|询问是否保存,如果有数据修改则提示询问是否保存,根据选择将对返回结果的IsUpdate赋值| |HandleData|排序,给是否顺序列为1的列赋值| |CheckData|检查必录项是否为空| |SaveData|保存数据| |ShowSuccess|提示成功,现基本上不用|

返回值

返回值是一个Hashtable,主要包含以下项 |键|说明| |-|-| |IsSuccess|数据集执行是否成功,“1”表示成功,“0”表示失败| |IsChanged|数据是否发生修改,“0”表示没修改,“1”表示修改| |IsUpdate|数据是否保存,“-1”表示取消,此时IsSuccess设为“1”,“0”表示不保存,此时IsSuccess设为“1”,“1”表示保存| |IsEmpty|是否有必录项为空,“0”表示没有,“1”表示有| |EmptyDataSetName|必录项为空的数据集的名称| |EmptyTableName|必录项为空的表名| |EmptyColumnName|必录项为空的列名|

RemoveDataSet

该方法是从DataSets对象中把指定的表设为null。如果存在表间关系,则应提前把表间关系给移除掉。

方法参数

参数是一个Hashtable,主要包含以下固定项:

|键|是否必须|说明| |-|-|-| |DataSetName|必须|数据集名称,是DataSets对象的键| |FacadeAlias|非必须|应用层别名,如果配置将与DataSetName拼接作为DataSets对象的键| |TableNames|非必须|要设置为null的表名,不传则整个DataSet所有的表都设置为null|

返回值

返回值是一个Hashtable,主要包含以下项 |键|说明| |-|-| |IsSuccess|执行是否成功,“1”表示成功,“0”表示失败|