将之前学习达梦数据库递归用法的SQL语句封装为存储过程,然后使用SqlSugar在C#程序中调用。
  打开达梦管理工具,在SCHOOL数据库的存储过程文件夹新建存储过程,这里需注意,存储过程名称及参数名称都需要大写,且参数名称不能与存储过程体内的属性重名。
在这里插入图片描述
在这里插入图片描述
  存储过程创建过后,使用查询语句测试调用结果,如下图所示,主要是根据角色标识获取其下级角色列表。
在这里插入图片描述
  达梦官网中介绍的SqlSugar调用存储过程主要有两种方式:
  1)调用db.Ado.UseStoredProcedure().GetDataTable返回DataTable,然后从DataTable对象中获取数据;
  2)调用db.Ado.UseStoredProcedure().SqlQuery返回指定数据类型的集合,数据类型定义应与存储过程返回的数据结果保持一致。

  本文测试第二种方式,主要代码及执行结果如下所示,

public class SubRole
{
    public string CNAME { get; set; } = string.Empty;
    public string CID { get; set; } = string.Empty;
}

...
...
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig()
{
    DbType = DbType.Dm,
    ConnectionString = "Server=127.0.0.1; User Id=XXXXXX; PWD=XXXXXX;SCHEMA=SCHOOL;DATABASE=SCHOOL",
     IsAutoCloseConnection = true
});

var roleID = new SugarParameter("@ROLEID", "2");
var list = db.Ado.UseStoredProcedure().SqlQuery<SubRole>("GETSUBROLES", roleID);

foreach(var item in list)
{
    Console.WriteLine($"{item.CNAME}:{item.CID}");
}

在这里插入图片描述

  

参考文献:
[1]https://www.donet5.com/home/doc?masterId=1&typeId=1198
[2]

Logo

一站式 AI 云服务平台

更多推荐