首页 > 数据库 >【愚公系列】2023年04月 .NET CORE工具案例-DeveloperSharp的使用(数据库)

【愚公系列】2023年04月 .NET CORE工具案例-DeveloperSharp的使用(数据库)

时间:2023-04-18 17:32:10浏览次数:41  
标签:CORE SqlExecute string 04 -- int 参数 2023 IDA

(文章目录)


前言

DeveloperSharp是一个研发中大型项目必备的系统平台。也是一个低代码平台。

它主要包括了如下一些功能:

  • 基于Sql语句、存储过程、事务、分页的数据库操作。并几乎支持市面上所有种类的数据库。
  • 图片操作。裁剪、缩放、加水印。
  • http请求调用(Post与Get)
  • 高效分页
  • Web服务/WebApi的负载均衡
  • 数据库的负载均衡,以及读写分离
  • CORS跨域访问
  • UUID全球通用唯一识别码
  • MQ消息队列(请另行使用DeveloperSharp.RabbitMQ包)
  • Redis缓存(请另行使用DeveloperSharp.Redis包)
  • “异种数据库”的负载均衡
  • 其他相关功能

一、DeveloperSharp的使用

1.安装包

DeveloperSharp

在这里插入图片描述

2.初始化数据库连接

using DeveloperSharp.Framework.QueryEngine;


DatabaseInfo DIF;

DIF.DatabaseType = DatabaseType.SQLServer; //设置数据库类型
DIF.ConnectionString = "Server=localhost;Database=PSIDBase;Uid=sa;Pwd=1";
IDataAccess IDA = DataAccessFactory.Create(DIF);

通过对DatabaseType属性的设定,提供了对所有种类数据库的支持(包括:MySql、Oracle、PostgreSQL、SqlServer、Sqlite、Firebird、达梦、以及人大金仓KingbaseES、神舟通用, 南大通用, 翰高, Access、等)

在这里插入图片描述

3.查询数据

1、普通查询

using DeveloperSharp.Framework.QueryEngine;
using System.Data;

DatabaseInfo DIF;

DIF.DatabaseType = DatabaseType.SQLServer; //设置数据库类型
DIF.ConnectionString = "Server=localhost;Database=PSIDBase;Uid=sa;Pwd=1";
IDataAccess IDA = DataAccessFactory.Create(DIF);


//查询多数据
var Students1 = IDA.SqlExecute<UserInfos>("select * from UserInfos");

//查询多数据(带参数)
var Students2 = IDA.SqlExecute<UserInfos>("select * from UserInfos where UserId>@IdMin and UserName like @LikeName", new { IdMin = 5, LikeName = "%lyc%" });
//另一种写法1
var IdMin = IDA.CreateParameterInput("IdMin", DbType.Int32, 4);
var LikeName = IDA.CreateParameterInput("LikeName", DbType.String, 50, "%lyc%");
var Students3 = IDA.SqlExecute<UserInfos>("select * from UserInfos where UserId>@IdMin and UserName like @LikeName", LikeName, IdMin);
//另一种写法2
var Students4 = IDA.SqlExecute<UserInfos>("select * from UserInfos").Where(t => t.UserId > 2 && t.UserName.Contains("lyc"));

//选出单数据
var OneStudent = Students2.FirstOrDefault();


public class UserInfos
{
    public int UserId { get; set; }
    public string UserName { get; set; }
    public int Age { get; set; }
    public string UserPwd { get; set; }
    public int UserState { get; set; }
}

在这里插入图片描述 2、分页查询

//--------------------------------------------分页------------------------------------------------
var Page1 = Students1.PagePartition(3, 1);

//一气呵成的写法
var Page3 = IDA.SqlExecute<UserInfos>("select * from UserInfos").PagePartition(3, 2);

在这里插入图片描述

4.增/删/改

try
{
    //开启事务
    IDA.TransactionBegin();

    //修改数据(多语句)
    int affectedRows1 = IDA.SqlExecute("insert into UserInfos(UserName,Age)values('ww','96');update UserInfos set Age=100 where Id=1006");

    //修改数据(带参数)
    int affectedRows2 = IDA.SqlExecute("insert into UserInfos(UserName,Age)values(@N,@A)", new { N = "愚公", A = 200 });
    //另一种写法
    var NewAge = IDA.CreateParameterInput("NewAge", DbType.Int32, 200);
    var NewName = IDA.CreateParameterInput("NewName", DbType.String, 50, "愚公");
    int affectedRows3 = IDA.SqlExecute("insert into UserInfos(UserName,Age)values(@NewName,@NewAge)", NewName, NewAge);

    //完成事务
    IDA.TransactionCommit();
}
catch
{
    //回滚事务
    IDA.TransactionRollBack();
}

5.输出参数

 var op1 = IDA.CreateParameterOutput("TotalCount", DbType.Int32);//此项为输出参数
 var op2 = IDA.CreateParameterOutput("MyName", DbType.String, 50);//此项为输出参数

 //以下sql语句混杂了多个“输入”与“输出”参数,注意看
 IDA.SqlExecute("insert into Friend(Birth,Name,height)values(@B,@N,@h);" +
     "select @TotalCount=count(*) from Friend;" +
     "select @MyName=Name from Friend where Id=@Id",
     new { N = "愚公", B = "1999-02-28 12:03:45", h = 11.023, Id = 2 },
     op1, op2);

 int tc = Convert.ToInt32(op1.Value);
 string mn = op2.Value.ToString();

6.存储过程

1、创建存储过程


CREATE PROCEDURE Test5
    @B as datetime,
    @N as nvarchar(50),
    @h as float,
    @TotalCount as int output,
    @MyName as nvarchar(50) output,
    @Id as int
AS
BEGIN
    insert into Friend(Birth,Name,height)values(@B,@N,@h);
    select @TotalCount=count(*) from Friend;
    select @MyName=Name from Friend where Id=@Id;
    return @TotalCount+100;
END

2、调用存储过程

var op1 = IDA.CreateParameterOutput("TotalCount", DbType.Int32);//输出参数
var op2 = IDA.CreateParameterOutput("MyName", DbType.String, 50);//输出参数
var op3 = IDA.CreateParameterReturn();//返回参数

IDA.SpExecute("Test5", new { N = "愚公", B = "1999-02-28 12:03:45", h = 11.023, Id = 2 }, op1, op2, op3);

int tc = Convert.ToInt32(op1.Value);
string mn = op2.Value.ToString();
int ret = Convert.ToInt32(op3.Value);

二、DeveloperSharp的参数说明

1.SqlExecute<T>

  • 声明:IEnumerable<T> SqlExecute<T>(string cmdText, params IDataParameter[] Params) where T : class, new()
  • 用途:执行Sql语句(Select类)
  • 参数: (1)string cmdText -- Sql语句 (2)params IDataParameter[] Params -- 参数组 返回:IEnumerable<T> -- 多数据结果集

2.SqlExecute<T>

  • 声明:IEnumerable<T> SqlExecute<T>(string cmdText, object InputParams,params IDataParameter[] Params) where T : class, new()
  • 用途:执行Sql语句(Select类)
  • 参数: (1)string cmdText -- Sql语句 (2)object InputParams -- 输入参数对象 (3)params IDataParameter[] Params -- 参数组 返回:IEnumerable<T> -- 多数据结果集

3.SqlExecute

  • 声明:int SqlExecute(string cmdText, params IDataParameter[] Params)
  • 用途:执行Sql语句(Insert/Update/Delete类)
  • 参数: (1)string cmdText -- Sql语句 (2)params IDataParameter[] Params -- 参数组 返回:int -- 受影响的行数

4.SqlExecute

  • 声明:int SqlExecute(string cmdText, object InputParams, params IDataParameter[] Params)
  • 用途:执行Sql语句(Insert/Update/Delete类)
  • 参数: (1)string cmdText -- Sql语句 (2)object InputParams -- 输入参数对象 (3)params IDataParameter[] Params -- 参数组 返回:int -- 受影响的行数

5.SpExecute<T>

  • 声明:IEnumerable<T> SpExecute<T>(string cmdText, params IDataParameter[] Params) where T : class, new()
  • 用途:执行Sp存储过程(Select类)
  • 参数: (1)string cmdText -- Sp存储过程名 (2)params IDataParameter[] Params -- 参数组 返回:IEnumerable<T> -- 多数据结果集

6.SpExecute<T>

  • 声明:IEnumerable<T> SpExecute<T>(string cmdText, object InputParams, params IDataParameter[] Params) where T : class, new()
  • 用途:执行Sp存储过程(Select类)
  • 参数: (1)string cmdText -- Sp存储过程名 (2)object InputParams -- 输入参数对象 (3)params IDataParameter[] Params -- 参数组 返回:IEnumerable<T> -- 多数据结果集

7.SpExecute

  • 声明:int SpExecute(string cmdText, params IDataParameter[] Params)
  • 用途:执行Sp存储过程(Insert/Update/Delete类)
  • 参数: (1)string cmdText -- Sp存储过程名 (2)params IDataParameter[] Params -- 参数组 返回:int -- 受影响的行数

8.SpExecute

  • 声明:int SpExecute(string cmdText, object InputParams, params IDataParameter[] Params)
  • 用途:执行Sp存储过程(Insert/Update/Delete类)
  • 参数: (1)string cmdText -- Sp存储过程名 (2)object InputParams -- 输入参数对象 (3)params IDataParameter[] Params -- 参数组 返回:int -- 受影响的行数

标签:CORE,SqlExecute,string,04,--,int,参数,2023,IDA
From: https://blog.51cto.com/u_15437432/6197021

相关文章

  • 归档 230418 // 补题
    凳子充分地让我切身实地地体会到了平行四边形的不稳定性。做题的时候可以360°无死角地把下半身转来转去,有点意思。也有点容易摔(×A.两双手http://222.180.160.110:1024/contest/3506/problem/1不难发现可以通过解二元一次方程组得到用几个A操作和B操作才能让横纵坐标分......
  • 生信0418
    生信包括哪些内容:生物信息学是一门涉及多个学科的学科,其包括以下几个主要内容:生物信息学基础知识:包括生物学、计算机科学、统计学和数学等基础学科的知识,例如生物分子的结构和功能、算法和数据结构、概率论和统计学等。基因组学:研究基因组的组成、结构、功能和演化,涉及到基......
  • 类库项目无法引用Microsoft.AspNetCore程序集下的类库
    在类库项目中不能直接引用WebApplicationBuilder、ApplicationBuilder等类,这些类位于Microsoft.ASPNetCore程序集中,但是无法通过Nuget包引用,因为该Nuget包的版本已经不再支持,很久没有更新过了。解决方法:在项目文件csproj文件中,在ItemGroup下手动添加引用<FrameworkReferenceInc......
  • 2023五一杯数学建模ABC思路分析
    0赛题思路(赛题出来以后第一时间分享)企鹅qun7144526211竞赛信息数学建模竞赛是一项模拟面对实际问题寻求解决方案的活动,是一次近似于“真刀真枪”的创新探索性实践训练。在丰富并活跃学生课外生活活动的同时,数学建模竞赛有助于训练学生的想象力、洞察力和创造力,有助于培养......
  • 如何运行编译.NetCore的源码?
    作为.net的开发人员,为了能更好的code,我们要知其然并知其所以然,了解.netcore的源码是我们的基本素养✊源码地址.NETPlatform(github.com)这个是.net在github上开源的源码地址aspnetcore这个是.netcore的源码地址构建方法构建有几点需要注意一下:构建比较费时间,可以......
  • 图像处理Photoshop 2023(ps2023)v24.2中文mac版
    Photoshop2023(ps2023)图像处理v24.2中文版,我们对它进行了改进。新的设置菜单将提供更好的操作。增强了对图像处理功能的支持。新增了“使用Photoshop在多个平台间移动图像”功能。新的编辑界面更简单了。→→↓↓载Photoshop2023Mac版 1.全新的设置菜单对新版本的设......
  • 2023年,中国制造业这三大趋势不可忽视!
    政府要掏1个亿奖励制造企业搞发展,我国制造业大翻身的时代来了吗?4月12日成都日报电,为支持制造业创新发展,支持制造业数字化、智能化和绿色化转型升级,培育高精尖特企业,政府给扶持政策不说,还有奖补举措,其中最高奖励1亿元!总书记在两会期间表示“任何时候中国都不能缺少制造业”。制造业......
  • Unable to create an object of type 'NetcoremvcDbcontext'. For the different patt
    问题描述:我整个项目重新生成没有报错,但是用efcore迁移数据库命令:Add-Migrationinit就生成不了文件夹Migrations,并且报错:Unabletocreateanobjectoftype'NetcoremvcDbcontext'.Forthedifferentpatternssupportedatdesigntime,seehttps://go.microsoft.com/fwlink/......
  • 喜报!Coremail连续10次入选《中国网络安全行业全景图》
    近日,国内权威媒体安全牛第十版《中国网络安全行业全景图》(以下简称“全景图”)正式发布。全景图共收录456家国内网络安全企业和相关机构,共分为15个一级安全分类,107个二级细分领域。Coremail凭借自身卓越的技术实力,突出的市场表现,完善的服务能力,已经连续十次入选“邮件安全”领域。邮......
  • 2023.4.18——软件工程日报
    所花时间(包括上课):8h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习。我了解到的知识点:1.了解了一些数据库的知识;2.了解了一些python的知识;3.了解了一些英语知识;4.了解了一些数学建模的知识;5.了解了一些Javaweb的知识;......