软件开发案例参考

前言:基于平台现有需求进行新功能模块开发与实现,以下内容为部分源码解析,仅提供一些思路参考,不予以客观指导,毕竟条条大路通罗马嘛;

语言:C#

工具:visual studio 2017/visual studio code

框架:.NET formwork 4.5

应用:外部API

准备工作:

        新建文件-visual C#-.net fromwork 选择4.5版本

1.继承服务插件几类:AbstractOperationServicePlugIn

2.引用,创建事件事务执行后重写方法;

public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e){base.AfterExecuteOperationTransaction(e);
}

3.API准备,

4.创建字符串列表,使用StreamReader方法,从指定文件中读取数据

List<string> objects = new List<string>();
using (StreamReader reader = new StreamReader(@"your_path")){while (!reader.EndOfStream){string line = reader.ReadLine();objects.Add(line);}}

 5.根据自定义文本中的内容进行遍历后打印,结合需求;

 Console.WriteLine(objects.First().ToString());Console.WriteLine(objects.Last().ToString());

6.建立客户端连接,登录

your_client client = new your_client(objects.First().ToString());
//此处登录信息方法ValidateLogin中参数以及参数类型结合个人所设
var loginResult = client.ValidateLogin("id", "user", objects.Last().ToString(), language);
var resultType = JObject.Parse(loginResult)["LoginResultType"].Value<int>();

7.获取登录结果之后,如果需要API数据库进行操作可参考一下内容同,如不需要则自行跳过;

 if (resultType == 1){
//验证是否登录成功,登录成功以逗号进行分割var ids = string.Join(",",e.DataEntitys.Select(o => o[0]));string viewsql = string.Format("/dialect/--dialect为注释,数据库使用的事SQLserver,此处书写sql语句且将获取登录类型信息作为sql语句的最后条件进行查询",ids);
//调用此方法执行sql语句,获取结果存储在MAUCOL集合中,this.context连接上下文
//也可自定义方法是使用context,(public void 方法名(Context ctx){}),将this.context变更ctx即可DynamicObjectCollection MAUCOL = DbUtils.ExecuteDynamicObject(this.Context, viewsql);

8.在此假设对数据库中查询出来的数据为A\B\C\D\E,对此进行操作,思路为拆分信息后进行物理自动重组形成新的逻辑内容;

 if(MAUCOL != null && MAUCOL.Count > 0){
//判断是否有数据进行操作,遍历,取出所需要的数据进行下一步操作;for(int x = 0; x < MAUCOL.Count; x++){
//获取各个字段;string a = Convert.ToString(MAUCOL[x]["A"]);string b= Convert.ToString(MAUCOL[x]["B"]);string c= Convert.ToString(MAUCOL[x]["C"]);string d= Convert.ToString(MAUCOL[x]["D"]);string e= Convert.ToString(MAUCOL[x]["E"]);

9.因为是需要将原有字段拆分后重组,所以需要查询在数据库对应表中是否存在,不存在写进去;

string aa = string.Format("/dialect/sql语句, 根据查询字段作为选定条件进行查询);DynamicObjectCollection aasql = DbUtils.ExecuteDynamicObject(this.Context,aa);

10.使用正则进行拆分

 if(aasql.Count == 0){string[] vs = Regex.Split(需要拆分的字段,"/",RegexOptions.IgnoreCase);
//分割以“\”if(vs.Length >= 3){
//如果分割的长度大于4,那么分别取出string aaa = vs[0];string bbb = vs[1];string ccc = vs[2];string ddd = vs[3];string eee = vs[4];

11.根据拆分出来的字段条件进行构建sql查询语气分别在数据库对应的表中查询出所需要的信息,因为查询拆分出五个信息 所以此处需要构建出五个语句在这里我只书写一个作为参考;

 string bb = string.Format("/dialect/以vs[0]第一个拆分字段为查询条件的sql语句'", vs[0]);DynamicObjectCollection bbsql = DbUtils.ExecuteDynamicObject(this.Context,bb);
//此处需要对应书写其五个 分别为bbccddee,自定义变量名称即可

12.重组

        使用json进行

if (vs[0] == "拆分字段"){JObject jObject = new JObject();JObject modelobject = new JObject();modelobject.Add("数据库表A对应字段", aa);modelobject.Add("数据库表B对应字段", bb);modelobject.Add("数据库表C对应字段", cc);modelobject.Add("数据库表D对应字段", dd);modelobject.Add("数据库表E对应字段", ee);//创建json数据,根据前边拆分的字段条件进行查询,维护在数据表中JArray entryarray = new JArray(); //
string AAA= string.Format("/dialect/以aabbccddee,作为查询条件的sql语句", aa,bb,cc,dd,ee);DynamicObjectCollection AAAsql = DbUtils.ExecuteDynamicObject(this.Context,AA);

13.如果上边没有问题执行后会将数据写入进去,开始遍历写入具体信息数据;

for (int i = 0; i < AAsql.Count; i++){JObject entryobject = new JObject();如需类型转换 F = Convert.如需类型转换(AAsql[i]["数据库字段"]);如需类型转换G = Convert.如需类型转换(AAsql[i]["数据库字段"]);如需类型转换H = Convert.如需类型转换(AAsql[i]["数据库字段"]);entryobject.Add("数据库字段1", F);entryobject.Add("数据库字段2 ", G);entryobject.Add("数据库字段2 ", H);JObject wjobject = new JObject();wjobject.Add("对应数据表结构字段与添加的字段一直的字段", 需要添加的字段);entryobject.Add("条件字段 ", wjobject);JObject yObject = new JObject();yObject.Add("对应数据表结构字段与添加的字段一直的字段2", 需要条件的第二个字段);JObject cjobject = new JObject();cjobject.Add("对应数据表结构字段与添加的字段一直的字段3", "");//以此类推JObject fzjobject = new JObject();fzjobject.Add("对应数据表结构字段与添加的字段一直的字段4", yjObject);fzjobject.Add("对应数据表结构字段与添加的字段一直的字段5", cjobject);entryobject.Add("对应数据表结构字段与添加的字段一直的字段6", fzjobject);entryarray.Add(entryobject);}

14.创建保存方法向客户端

modelobject.Add("对应需要添加的类型字段 ", entryarray);jObject.Add("类型字段", modelobject);//构建SAVE提交方法客户端string SSAVE = jObject.ToString();var resultJsons = client.Save("数据表中头字段标识", jObject.ToString());

15.提交

string submitSW = string.Format("/*dialect*/sql语句以提交字段进行条件查询的", 字段);DynamicObjectCollection fidsql1 = DbUtils.ExecuteDynamicObject(this.Context, submitSW);if (fidsql1 != null && fidsql1.Count > 0){for (int i = 0; i < fidsql1.Count; i++){Int32 fid = Convert.ToInt32(fidsql1[i]["fid"]);JObject submitjobject = new JObject();submitjobject.Add("Ids", fid);var resultJsonss = client.Submit("数据表中头字段标识", submitjobject.ToString());

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/39239.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++基础(二):C++入门(一)

C是在C的基础之上&#xff0c;容纳进去了面向对象编程思想&#xff0c;并增加了许多有用的库&#xff0c;以及编程范式 等。熟悉C语言之后&#xff0c;对C学习有一定的帮助&#xff0c;本篇博客主要目标&#xff1a; 1. 补充C语言语法的不足&#xff0c;以及C是如何对C语言设计…

【RabbitMQ实战】邮件发送(直连交换机、手动ack)

一、实现思路 二、异常情况测试现象及解决 说明:本文涵盖了关于RabbitMQ很多方面的知识点, 如: 消息发送确认机制 、消费确认机制 、消息的重新投递 、消费幂等性, 二、实现思路 1.简略介绍163邮箱授权码的获取 2.编写发送邮件工具类 3.编写RabbitMQ配置文件 4.生产者发起调用…

高考失利咨询复读,银河补习班客服开挂回复

补习班的客服在高考成绩出来后&#xff0c;需要用专业的知识和足够的耐心来回复各种咨询&#xff0c;聊天宝快捷回复软件&#xff0c;帮助客服开挂回复。 ​ 前言 高考成绩出来&#xff0c;几家欢喜几家愁&#xff0c;对于高考失利的学生和家长&#xff0c;找一个靠谱的复读补…

全面了解机器学习

目录 一、基本认识 1. 介绍 2. 机器学习位置 二、机器学习的类型 1. 监督学习 2. 无监督学习 3. 强化学习 三、机器学习术语 1. 训练样本 2. 训练 3. 特征 4. 目标 5. 损失函数 四、机器学习流程 五、机器学习算法 1. 分类算法 2. 聚类算法 3. 关联分析 4. …

Qt入门教程(一):Qt使用的基本知识

目录 Qt简介 新建项目 构建目录和工作目录 构建目录 工作目录 项目结构 项目配置文件 .pro 用户文件 .user 主文件 main.cpp 头文件 dialog.h 源文件 dialog.cpp 帮助文档 三种查询文档的方式&#xff1a; 文档的重点位置&#xff1a;​编辑 调试信息 Qt简介 Qt…

java 代码块

Java中的代码块主要有三种类型&#xff1a;普通代码块、静态代码块、构造代码块。它们的用途和执行时机各不相同。 普通代码块&#xff1a;在方法内部定义&#xff0c;使用一对大括号{}包围的代码片段。它的作用域限定在大括号内&#xff0c;每当程序执行到该代码块时就会执行其…

全平台7合一自定义小程序源码系统功能强大 前后端分离 带完整的安装代码包以及搭建教程

系统概述 这款全平台 7 合一自定义小程序源码系统是专为满足各种业务需求而设计的。它整合了多种功能&#xff0c;能够在不同平台上运行&#xff0c;为用户提供了全方位的体验。无论你是企业主、开发者还是创业者&#xff0c;这款系统都能为你提供强大的支持。 代码示例 系统…

crewAI实践(包含memory的启用)--AiRusumeGenerator

crewAI实践--AiRusumeGenerator 什么是crewAIAiRusumeGenerator功能效果展示开发背景开发步骤1. 首先得学习下这款框架原理大概用法能够用来做什么&#xff1f; 2. 安装crewAI以及使用概述3. 写代码Agents.pyTasks.pymian.py关于task中引入的自定义工具这里不再赘述 什么是crew…

V Rising夜族崛起的管理员指令大全

使用方法&#xff1a; 如果没有启用控制台需要先启用控制台 打开游戏点击选项&#xff08;如果在游戏内点击ESC即可&#xff09;&#xff0c;在通用页面找到启用控制台&#xff0c;勾选右边的方框启用 在游戏内点击键盘ESC下方的波浪键&#xff08;~&#xff09;使用控制台 指…

构建LangChain应用程序的示例代码:49、如何使用 OpenAI 的 GPT-4 和 LangChain 库实现多模态问答系统

! pip install "openai>1" "langchain>0.0.331rc2" matplotlib pillow加载图像 我们将图像编码为 base64 字符串&#xff0c;如 OpenAI GPT-4V 文档中所述。 import base64 import io import osimport numpy as np from IPython.display import HT…

PDF一键转PPT文件!这2个AI工具值得推荐,办公必备!

PDF转换为PPT文件&#xff0c;是职场上非常常见的需求&#xff0c;过去想要把PDF文件转换为PPT&#xff0c;得借助各种文件转换工具&#xff0c;但在如今AI技术主导的大背景下&#xff0c;我们在选用工具时有了更多的选择&#xff0c;最明显的就是基于AI技术打造的AI格式转换工…

《昇思25天学习打卡营第21天 | 昇思MindSporePix2Pix实现图像转换》

21天 本节学习了通过Pix2Pix实现图像转换。 Pix2Pix是基于条件生成对抗网络&#xff08;cGAN&#xff09;实现的一种深度学习图像转换模型。可以实现语义/标签到真实图片、灰度图到彩色图、航空图到地图、白天到黑夜、线稿图到实物图的转换。Pix2Pix是将cGAN应用于有监督的图…

gin框架 gin.Context中的Abort方法使用注意事项 - gin框架中立刻中断当前请求的方法

gin框架上下文中的Abort序列方法&#xff08;Abort&#xff0c;AbortWithStatus&#xff0c; AbortWithStatusJSON&#xff0c;AbortWithError&#xff09;他们都不会立刻终止当前的请求&#xff0c;在中间件中调用Abort方法后中间件中的后续的代码会被继续执行&#xff0c;但是…

【Unity 人性动画的复用性】

Unity的动画系统&#xff0c;通常称为Mecanim&#xff0c;提供了强大的动画复用功能&#xff0c;特别是针对人型动画的重定向技术。这种技术允许开发者将一组动画应用到不同的角色模型上&#xff0c;而不需要为每个模型单独制作动画。这通过在模型的骨骼结构之间建立对应关系来…

系统安全与应用

目录 1. 系统账户清理 2. 密码安全性控制 2.1 密码复杂性 2.2 密码时限 3 命令历史查看限制 4. 终端自动注销 5. su权限以及sudo提权 5.1 su权限 5.2 sudo提权 6. 限制更改GRUB引导 7. 网络端口扫描 那天不知道为什么&#xff0c;心血来潮看了一下passwd配置文件&am…

三维家:SaaS的IT规模化降本之道|OceanBase 《DB大咖说》(十一)

OceanBase《DB大咖说》第 11 期&#xff0c;我们邀请到了三维家的技术总监庄建超&#xff0c;来分享他对数据库技术的理解&#xff0c;以及典型 SaaS 场景在数据库如何实现规模化降本的经验与体会。 庄建超&#xff0c;身为三维家的技术总监&#xff0c;独挑大梁&#xff0c;负…

grpc学习golang版( 八、双向流示例 )

系列文章目录 第一章 grpc基本概念与安装 第二章 grpc入门示例 第三章 proto文件数据类型 第四章 多服务示例 第五章 多proto文件示例 第六章 服务器流式传输 第七章 客户端流式传输 第八章 双向流示例 文章目录 一、前言二、定义proto文件三、编写server服务端四、编写client客…

中霖教育:环评工程师好考吗?

【中霖教育好吗】【中霖教育怎么样】 在专业领域&#xff0c;环评工程师资格认证考试是一项具有挑战性的考试&#xff0c;考试科目为&#xff1a;《环境影响评价相关法律法规》 《环境影响评价技术导则与标准》《环境影响评价案例分析》《环境影响评价技术方法》。 四个科目…

【Linux】—VMware安装Centos7步骤

文章目录 前言一、虚拟机准备二、CentOS7操作系统安装 前言 本文介绍VMware安装Centos7步骤。 软件准备 软件&#xff1a;VMware Workstation Pro&#xff0c;直接官网安装。镜像&#xff1a;CentOS7&#xff0c;镜像官网下载链接&#xff1a;https://vault.centos.org/&#x…

[C++]——同步异步日志系统(1)

同步异步日志系统 一、项⽬介绍二、开发环境三、核心技术四、环境搭建五、日志系统介绍5.1 为什么需要日志系统5.2 日志系统技术实现5.2.1 同步写日志5.2.2 异步写日志 日志系统&#xff1a; 日志&#xff1a;程序在运行过程中&#xff0c;用来记录程序运行状态信息。 作用&…