ASP.NET企业开发框架IsLine FrameWork系列之五--DataProvider 数据访问(中)

本文介绍IsLineFramework中的DataProvider组件,用于实现ASP.NET应用中的数据访问。文章详细讲解了配置数据库连接、执行SQL语句及存储过程的方法,并提供了实例演示。

ASP.NET企业开发框架IsLine FrameWork系列之五--DataProvider 数据访问(中)

    接上文

    使用DataProvider前,需要先在web.config中配置以下节点,添加于<configSections></configSections>之间:

   

复制代码
   
< IsLine.Data.Configuration > < DataBaseConnection >
< DBType > IsLine.Data.DataTypeEnum.DataBaseType.SqlServer </ DBType > < Server > Server IP </ Server > < UserID > sa </ UserID > < PwdType > Cryptography.Decrypting </ PwdType > // or <PwdType>Cryptography.StrengthDecrypting</PwdType> or <PwdType>Cryptography.None</PwdType> < Pwd > 111111 </ Pwd > < DataBase > UML </ DataBase > // SqlServer only </ DataBaseConnection > </ IsLine.Data.Configuration >
复制代码

 

 

    其中DataBaseConnection指明数据库类型,PwdType指明密码加密策略,IsLine Provider内置3中策略供选择,如配置文件所示。以上示例为针对SqlServer,以下为Oralce节点配置方法:

 

复制代码
   
< IsLine.Data.Configuration > < DataBaseConnection >
< DBType > IsLine.Data.Configuration.OracleConnectString </ DBType > < Server > TNS别名 </ Server > < UserID > sa </ UserID > < PwdType > Cryptography.Decrypting </ PwdType > // or <PwdType>Cryptography.StrengthDecrypting</PwdType> or <PwdType>Cryptography.None</PwdType> < Pwd > 111111 </ Pwd > < OtherPlus > Provider = MSDAORA. 1 ; Persist Security Info = False; </ OtherPlus > // Oracle Only </ DataBaseConnection > </ IsLine.Data.Configuration >
复制代码

 

 

    或者可以使用以下简单配置方法,免去节点配置的麻烦:

    SQLSERVER:

<add key=" IsLine.Data.Configuration.SqlServerConnectString " value="Data Source=Server IP;User;Password=111111;Integrated Security=no;Enlist=false;Pooling=true;" />

    ORACLE:

    <add key="IsLine.Data.Configuration.OracleConnectString" value="Data Source=TNS别名;User;Password=111111;Integrated Security=no;Enlist=false;Pooling=true;" />

    节点配置好后,使用以下方法调用,调用时分为面向连接与非连接两种方式,面向连接的操作(例如返回DataSet/Reader/Adapter等)使用前须进行实例化,使用后须调用.Dispost()方法释放资源,Dispost()是一个经过DataProvider重写的方法,一旦调用将会释放所有资源,包括Connection、Command、DataReader等,而面向非连接操作则直接调用即可。如果使用DataReader、Adapter等为面向连接操作,单纯执行sql语句为非连接操作,例如访问数据库单纯执行依据sql语句可以使用:

    OracleProvider.ExecuteNonQuery();

    或

    SqlProvider.ExecuteNonQuery();

    实例化例子:

    OracleProvider op = new OracleProvider();

    op.SomeFunc();

方法列表如下:

方法名称

说明

是否须实例化

OraBit2Bool

 

ExecuteScalar

4次重载,传入sql语句后存储过程名称,返回首个元素

Bool2OraBit

 

ExecuteNonQuery

5次重载,传入sql语句后存储过程名称,在数据库予以执行

ExecuteReader

5次重载,传入sql语句后存储过程名称,返回对应类型的DataReader

ExecuteDataSet

5次重载,传入sql语句后存储过程名称,返回对应类型的DataSet

ExecuteDataAdapter

5次重载,传入sql语句后存储过程名称,返回对应类型的DataAdapter

Dispose

释放所有资源

conn

为实例指定Connection

cmd

为实例指定Command

传入参数列表:(针对以上重载方法传入参数说明)

参数名

参数类型

说明

cmdText

string

Sql语句或存储过程名

connectionKey

string

连接串(仅当不使用web.config中配置节点中的数据库连接时使用,例如在一个项目中,有时会使用很多个数据库,主业务数据库、日志数据库等等,这时就可以将主业务数据库配置为默认数据库,使用日志数据库使用该参数传递)

IsUsingOracleTransaction

bool

是否启用事物处理(同事务中的sql语句之间使用“!”连接)

cmdType

CommandType

该参数指明“cmdText”参数是sql语句还是存储过程

commandParameters

Params System.Data.OracleClient.OracleParameter[]

使用Params时使用

connection

OracleConnection

作用与“connectionKey”相同,不过是实例化好了的

connection

SqlConnection

同上

srcTable

string

使用“ExecuteDataSet”方法时,填充表的名称

commandParameters

params System.Data.SqlClient.SqlParameter[]

使用Params时使用

实例:

    1.执行一句sql语句:

    OracleProvider.ExecuteNonQuery(sql);

 

2.利用事务执行一批sql语句:OracleProvider.ExecuteNonQuery(sql,true,CommandType.Text,null);

 

3.执行一个存储过程:

  1. 复制代码
         
    OracleParameter[] OracleParam = new OracleParameter[ 6 ]; OracleParam[ 0 ] = new OracleParameter( " ParameterName1 " , OracleType.VarChar, 32 ); OracleParam[ 0 ].Value = " a " ; OracleParam[ 1 ] = new OracleParameter( " ParameterName2 " , OracleType.VarChar, 20 ); OracleParam[ 1 ].Value = " b " ; OracleProvider.ExecuteNonQuery(StoredProcedureName, null ,CommandType.StoredProcedure, OracleParam);
    复制代码

     

    返回一个DataReader

new OracleProvider().ExecuteReader(sql);

  1. 返回一个DataSet

OracleProvider().ExecuteDataSet(sql);

  1. 使用指定连接返回一个DataSet

new OracleProvider().ExecuteDataSet(sql,"ConnectionStr",0);

  1. 调用存储过程返回一个DataSet

    new OracleProvider().ExecuteDataSet(sql,CommandType.StoredProcedure,"TestTable",null);

 

    以上只是几个很简单的例子,总之使用DataProvider,就可以实现通过配置控制数据库,而代码层面只有操作语句,没有数据库连接、配置语句的目的了。

DataProvider中还有一个类“DBProvider”,这个Provider可以不指明是SQLSERVER还是Oracle数据库或是其他数据库,你需要提前遵守上文中提到的相关接口契约,实现为Configution.dll,并放置于约定位置(这个位置在web.config中配置),程序就会自动反射并使用其中的方法了。将来你更改数据库时,只需要更换这个DLL就可以了,不需要修改主程序。

  “DBProvider”还封装了微软的DbProviderFactory,这个大家一定知道,我就不多介绍了,调用方法名称与方式与以上介绍的都一样。

多源动态最优潮流的分布鲁棒优化方法(IEEE118节点)(Matlab代码实现)内容概要:本文介绍了基于Matlab代码实现的多源动态最优潮流的分布鲁棒优化方法,适用于IEEE118节点电力系统。该方法结合两阶段鲁棒模型与确定性模型,旨在应对电力系统中多源输入(如可再生能源)的不确定性,提升系统运行的安全性与经济性。文中详细阐述了分布鲁棒优化的建模思路,包括不确定性集合的构建、目标函数的设计以及约束条件的处理,并通过Matlab编程实现算法求解,提供了完整的仿真流程与结果分析。此外,文档还列举了大量相关电力系统优化研究案例,涵盖微电网调度、电动汽车集群并网、需求响应、储能配置等多个方向,展示了其在实际工程中的广泛应用价值。; 适合人群:具备一定电力系统基础知识和Matlab编程能力的研究生、科研人员及从事能源系统优化工作的工程师。; 使用场景及目标:①用于研究高比例可再生能源接入背景下电力系统的动态最优潮流问题;②支撑科研工作中对分布鲁棒优化模型的复现与改进;③为电力系统调度、规划及运行决策提供理论支持与仿真工具。; 阅读建议:建议读者结合提供的Matlab代码与IEEE118节点系统参数进行实操演练,深入理解分布鲁棒优化的建模逻辑与求解过程,同时可参考文中提及的其他优化案例拓展研究思路。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值