当前位置: 首页 > news >正文

做ppt网站有哪些内容吗关键词优化哪家强

做ppt网站有哪些内容吗,关键词优化哪家强,厦门专业网站建设,wordpress admin theme 下载介绍 Oracle 数据库功能强大#xff0c;在企业环境中使用广泛。在 ASP.NET Core 应用程序中使用 Oracle 存储过程时#xff0c;处理输出参数可能具有挑战性。本教程将指导您完成使用 Dapper#xff08;适用于 . NET 的轻量级 ORM#xff08;对象关系映射器#xff09;在企业环境中使用广泛。在 ASP.NET Core 应用程序中使用 Oracle 存储过程时处理输出参数可能具有挑战性。本教程将指导您完成使用 Dapper适用于 . NET 的轻量级 ORM对象关系映射器解锁 Oracle 存储过程输出参数的过程。 先决条件 在开始之前请确保您已准备好以下内容。 Visual Studio 2019 或更高版本.NET Core SDK 3.1 或更高版本Oracle 数据库您可以使用 Oracle 数据库 XE 进行开发具有 C#、ASP.NET Core 和 SQL 的基础知识 设置项目 创建 ASP.NET 核心项目 打开 Visual Studio 并创建一个新的 ASP.NET Core 控制台应用程序项目。 安装 NuGet 包 您需要安装 Dapper 和 Oracle.ManagedDataAccess.Core 包。 创建 Oracle 存储过程 让我们在 Oracle 中创建一个简单的存储过程它接受一个输入参数并返回一个输出参数。 CREATE OR REPLACE PROCEDURE DEMO.SAVE_EMPLOYEE_DETAILS (V_NAME IN VARCHAR2,V_ADDRESS IN VARCHAR2,V_DEPARTMENT IN VARCHAR2,V_POSITION IN VARCHAR2,O_EMP_ID OUT VARCHAR2,O_ERROR OUT VARCHAR2 ) ASV_EMP_ID VARCHAR2 (10); BEGIN-- GENERATE EMPLOYEE IDSELECT DEMO.EMP_SEQ.NEXTVAL INTO V_EMP_ID FROM DUAL;-- INSERT EMPLOYEE DETAILSINSERT INTO DEMO.EMPLOYEE_DETAILS (EMP_ID,NAME,ADDRESS,DEPARTMENT,POSITION) VALUES (V_EMP_ID,V_NAME,V_ADDRESS,V_DEPARTMENT,V_POSITION);-- SET OUTPUT EMPLOYEE IDO_EMP_ID : V_EMP_ID;-- RESET ERROR OUTPUTO_ERROR : NULL; EXCEPTIONWHEN OTHERS THENO_ERROR : FAILED TO SAVE EMPLOYEE DETAILS. || SQLERRM;ROLLBACK;RETURN; END SAVE_EMPLOYEE_DETAILS; /连接到 Oracle 数据库 使用 SQL*Plus、SQL Developer、Toad 或任何其他 Oracle 客户端工具连接到您的 Oracle 数据库。 实现 ASP.NET 核心应用程序 添加 OracleDynamicParameters 类 using Dapper; using Oracle.ManagedDataAccess.Client; using System; using System.Collections.Generic; using System.Data; using System.Linq;namespace DapperOracleDemo {public class OracleDynamicParameters : SqlMapper.IDynamicParameters{private readonly DynamicParameters dynamicParameters new DynamicParameters();// 使用DynamicParameters存储一般参数private readonly ListOracleParameter oracleParameters new ListOracleParameter();// 使用ListOracleParameter存储Oracle特定的参数public void Add(string name, OracleDbType oracleDbType, ParameterDirection direction, object value null, int? size null){// 创建并添加一个OracleParameter对象到参数列表中OracleParameter item ((!size.HasValue) ? new OracleParameter(name, oracleDbType, value, direction) : new OracleParameter(name, oracleDbType, size.Value, value, direction));oracleParameters.Add(item);}public void Add(string name, OracleDbType oracleDbType, ParameterDirection direction){// 创建并添加一个没有默认值的OracleParameter对象到参数列表中OracleParameter item new OracleParameter(name, oracleDbType, direction);oracleParameters.Add(item);}public void AddParameters(IDbCommand command, SqlMapper.Identity identity){// 将一般参数添加到命令对象中((SqlMapper.IDynamicParameters)dynamicParameters).AddParameters(command, identity);// 将Oracle特定的参数添加到命令对象中(command as OracleCommand)?.Parameters.AddRange(oracleParameters.ToArray());}public T GetT(string name){// 获取指定名称的参数值var parameter oracleParameters.SingleOrDefault(t t.ParameterName name);object val parameter?.Value;if (val DBNull.Value){if (default(T) ! null){// 如果尝试将DBNull值转换为非可空类型抛出异常throw new ApplicationException(Attempting to cast a DBNull to a non nullable type! Note that out/return parameters will not have updated values until the data stream completes (after the foreach for Query(..., buffered: false), or after the GridReader has been disposed for QueryMultiple));}return default;}return (T)val;}public T GetT(int index){// 获取指定索引的参数值var parameter oracleParameters[index];object val parameter?.Value;if (val DBNull.Value){if (default(T) ! null){// 如果尝试将DBNull值转换为非可空类型抛出异常throw new ApplicationException(Attempting to cast a DBNull to a non nullable type! Note that out/return parameters will not have updated values until the data stream completes (after the foreach for Query(..., buffered: false), or after the GridReader has been disposed for QueryMultiple));}return default;}return (T)val;}} }添加 OracleDataAccessObject 类 using Dapper; using Oracle.ManagedDataAccess.Client; using System.Data;namespace DapperOracleDemo {public class OracleDataAccessObject{private readonly string _ConnectionString;// 构造函数初始化连接字符串public OracleDataAccessObject(string ConnectionString){_ConnectionString ConnectionString;}// 获取Oracle数据库连接private IDbConnection GetOracleConnection(){return new OracleConnection(_ConnectionString);}// 执行带参数的存储过程public dynamic OracleSProcWithParam(string sql, OracleDynamicParameters param){// 使用using语句确保IDbConnection在使用后被正确关闭和释放using IDbConnection cnn GetOracleConnection();CommandType? commandType CommandType.StoredProcedure;// 执行存储过程return cnn.Execute(sql, param, null, null, commandType);}} }添加员工输入和输出 Dto namespace DapperOracleDemo {public class EmployeeInputDto{public string NAME { get; set; }public string ADDRESS { get; set; }public string DEPARTMENT { get; set; }public string POSITION { get; set; }} }namespace DapperOracleDemo {public class EmployeeOutputDto{public string EMP_ID { get; set; }public string ERROR { get; set; }} }using Oracle.ManagedDataAccess.Types; namespace DapperOracleDemo {public class SpReturnModel{public dynamic ID { get; set; }public OracleString ErrorMsg { get; set; }} }配置连接字符串 static class Config {public static string OracleDBConnectionString Data Source192.168.29.1:1521/DEMODB;User IdDEMO;Passworddemo123;;public static string SP_SAVE_EMPLOYEE_DETAILS DEMO.SAVE_EMPLOYEE_DETAILS; }添加 SaveEmployeeDetails() 方法 static SpReturnModel SaveEmployeeDetails(EmployeeInputDto dto) {var oraDao new OracleDataAccessObject(Config.OracleDBConnectionString);var oracleParam new OracleDynamicParameters();oracleParam.Add(V_NAME, OracleDbType.Varchar2, ParameterDirection.Input, dto.NAME);oracleParam.Add(V_ADDRESS, OracleDbType.Varchar2, ParameterDirection.Input, dto.ADDRESS);oracleParam.Add(V_DEPARTMENT, OracleDbType.Varchar2, ParameterDirection.Input, dto.DEPARTMENT);oracleParam.Add(V_POSITION, OracleDbType.Varchar2, ParameterDirection.Input, dto.POSITION);oracleParam.Add(O_EMP_ID, OracleDbType.Varchar2, ParameterDirection.Output, size: 20);oracleParam.Add(O_ERROR, OracleDbType.Varchar2, ParameterDirection.Output, size: 2000);var oracleQuery Config.SP_SAVE_EMPLOYEE_DETAILS;oraDao.OracleSProcWithParam(oracleQuery, oracleParam);return GetSpOutParamResult(oracleParam, O_EMP_ID); } static SpReturnModel GetSpOutParamResult(OracleDynamicParameters param, string idParam ) {SpReturnModel retMdl new SpReturnModel(){ID !string.IsNullOrEmpty(idParam) ? param.Getdynamic(idParam) : 0,ErrorMsg param.GetOracleString(O_ERROR)};return retMdl; }测试应用程序 调用 SaveEmployeeDetails() 方法 static void Main(string[] args) {var inDto new EmployeeInputDto{NAME SURYA RAJ GHIMIRE,ADDRESS KATHMANDU, NEPAL,DEPARTMENT RESEARCH DEVELOPMENT,POSITION SOFTWARE ENGINEER};var resp SaveEmployeeDetails(inDto);var outDto new EmployeeOutputDto{EMP_ID resp.ID is null ? null : (string)resp.ID,ERROR resp.ErrorMsg.ToString()};Console.WriteLine(Employee id: outDto.EMP_ID);Console.WriteLine(Error: outDto.ERROR);Console.ReadLine(); }运行应用程序 运行您的 ASP.NET Core 应用程序并查看控制台上的输出。 结论 在本教程中我们介绍了如何使用 Dapper 处理 ASP.NET Core 应用程序中 Oracle 存储过程的输出参数。通过遵循这些步骤您可以有效地将 Oracle 存储过程集成到 .NET 应用程序中利用 Dapper 的强大功能和简单性进行数据库操作。
http://www.hkea.cn/news/14512777/

相关文章:

  • 找人开发一个网站多少钱争对银行排队做一网站
  • wordpress去掉仪表盘网站优化页面
  • 网站制作的总结与体会开发商城网站
  • 北京一个公司做网站认证汕头市网站建设
  • 企业网站建设规划网页制作的专业
  • 网站主机一个g便民信息推广平台
  • 免费网站自己做抖音测一测小程序怎么赚钱
  • 青岛专业制作网站的公司北京市建设工程造价管理处 网站
  • c2c模式的典型网站easyui做的网站
  • 电商网站设计费用app网站建站系统下载
  • 长沙的网站制作公司住建部网站查询系统
  • 联通专线做网站营销型企业网站优化
  • 网站高速下载如何做建设网站的好处
  • 自己做网站怎么买域名wordpress注册确认信
  • 青海中小企业网站建设网站建设 上市公司
  • 濮阳做网站 汉狮网络设计上海展会2021时间
  • 遵义网站建设服务湖南网站设计费用
  • 锦州宝地建设集团有限公司网站移动应用开发大作业
  • 网站推广问题西宁做网站君博领先
  • 豫icp郑州网站建设网络服务商和网络运营商
  • 华为一站式服务建站广州市司法职业学校
  • 有没有专门做教育培训的网站wordpress主题制作导航的n种方法
  • 江都网站建设石家庄最新轨迹
  • 做程序的网站长沙网站制造
  • 建立网站流程图成都市城乡建设厅官方网站
  • 淘宝客网站下载西安知名网站制作公司
  • 商务网站建设实训过程wordpress显示一个分类列表名称
  • 买个网站服务器多少钱wordpress图标居中
  • 深圳场站建设发展有限公司天津seo实战培训
  • 公司网站免费建站怎么样wordpress生成封面分享