前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【愚公系列】2023年01月 .NET CORE工具案例-DeveloperSharp的使用(数据库)

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

作者头像
愚公搬代码
发布2023-01-02 10:49:02
5310
发布2023-01-02 10:49:02
举报
文章被收录于专栏:历史专栏历史专栏历史专栏

文章目录


前言

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

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

2.SqlExecute

  • 声明:IEnumerable SqlExecute(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 – 多数据结果集

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

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

6.SpExecute

  • 声明:IEnumerable SpExecute(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 – 多数据结果集

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 – 受影响的行数
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-01-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 前言
  • 一、DeveloperSharp的使用
    • 1.安装包
      • 2.初始化数据库连接
        • 3.查询数据
          • 4.增/删/改
            • 5.输出参数
              • 6.存储过程
              • 二、DeveloperSharp的参数说明
                • 1.SqlExecute
                  • 2.SqlExecute
                    • 3.SqlExecute
                      • 4.SqlExecute
                        • 5.SpExecute
                          • 6.SpExecute
                            • 7.SpExecute
                              • 8.SpExecute
                              相关产品与服务
                              对象存储
                              对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档