[C#]JCoder.Db4Net.SqlServer ,轻量的SqlServer数据处理类库,MIT协议

20 篇文章 1 订阅
1 篇文章 0 订阅

架构说明

JCoder.Db4Net.SqlServer
语言C#
协议MIT
.Net框架.Net Standard2.1; .Net Framework 4.7.2; .Net 5; .Net 6;
简述Database类库,一个基于JCoder.Db4Net且支持Sql Server的库。

引用类库

引用类库版本
JCoder.Db4Net>=2.18.1
System.Data.SqlClient>=4.8.2

相关类库

相关类库说明
JCoder.Db4Net一款为方便使用数据库的操作类库,JCore.Db4Net的新版本。
JCoder.Db4Net.ORM一个基于JCoder.Db4Net的ORM库,JCore.Db4Net.ORM的新版本。
JCoder.Db4Net.Sqlite一个基于JCoder.Db4Net且支持Sqlite的库,JCore.Db4Net.Sqlite的新版本。
JCoder.Db4Net.MySql一个基于JCoder.Db4Net且支持Mysql的库,JCore.Db4Net.MySql的新版本。
JCoder.Db4Net.SqlServer一个基于JCoder.Db4Net且支持SqlServer的库,JCore.Db4Net.SqlServer的新版本。
JCoder.Mock4Net一款简易版的用于模拟数据的功能库。

获取方式

  1. 版本要求:>=2.18.1
  2. 以版本2.18.1为例
获取方式描述
Package ManagerInstall-Package JCoder.Db4Net.SqlServer -Version 2.18.1
.Net CLIdotnet add package JCoder.Db4Net.SqlServer --version 2.18.1
PackageReference<PackageReference Include="JCoder.Db4Net.SqlServer" Version="2.18.1" />
Paket CLIpaket add JCoder.Db4Net.SqlServer --version 2.18.1
Script&Interactive#r "nuget: JCoder.Db4Net.SqlServer, 2.18.1"
Cake// Install as a Cake Addin
#addin nuget:?package=JCoder.Db4Net.SqlServer&version=2.18.1

// Install as a Cake Tool
#tool nuget:?package=JCoder.Db4Net.SqlServer&version=2.18.1

使用说明

主要类与接口

名称类型描述
MsSqlTexter主要用于SqlServer的SQL语句的生成。
MsSqlBuilder主要用于SqlServer数据库结构的处理。
MsSqler主要用于SqlServer的SQL的执行与处理。
DbMsSql工具类,主要用于SqlServer数据库通用的处理。

创建实例

  1. MsSqlFactoryOperator

需要先在项目里引用或加载Sql Server官方库System.Data.SqlClient.dll。

   IDbOperator _operator = new MsSqlFactoryOperator()
   {
       ConnectionString = "Server=127.0.0.1;Database=test;Uid = user; Pwd=testpassword;"
   };
  1. MsSqler
IDbOperator _operator = new MsSqler()
{
       ConnectionString = "Server=127.0.0.1;Database=test;Uid = user; Pwd=testpassword;"
};

MsSqler使用

  1. CanConnect(是否能够连接数据库)
    // CanConnect(是否能够连接数据库)
    if (_dber.CanConnect()) { return; }
    
  2. CreateParameter(创建相应的参数)
    // CreateParameter(创建相应的参数)
    return _dber.CreateParameter( "ID", 123);
    
  3. Execute(执行SQL)
    // Execute(执行SQL)
    var _parameters = new List<DbParameter>()
    {
        _dber.CreateParameter("ID","ID123"),
        _dber.CreateParameter("Name","Name123"),
        _dber.CreateParameter("CreateTime",DateTime.Now),
    };
    var _sql = @"insert table1 (ID,Name,CreateTime) values (@ID,@Name,@CreateTime);";
    var _count = _dber.Execute(_sql, _parameters);//直接执行SQL
    //var _count = _dber.Execute(true,_sql, _parameters);// 使用事务执行SQL
    return _count >= 1;
    
  4. Execute(执行多条SQL)
    // Execute(执行多条SQL)
    var _parameters = new List<DbParameter>()
    {
        _dber.CreateParameter("Value1","ID123"),
        _dber.CreateParameter("Value2","Name123"),
        _dber.CreateParameter("Value3","Name1456"),
    };
    var _sqls = new string[]
    {
        @"insert table3 (Values) values (@Value1);",
        @"insert table3 (Values) values (@Value2);",
        @"insert table3 (Values) values (@Value3);",
    } ;
    var _count = _dber.Execute(_sqls, _parameters);//直接执行SQL
    //var _count = _dber.Execute(true, _sqls, _parameters);// 使用事务执行SQL
    return _count >= 1;
    
  5. ExecuteTransaction(使用事务执行指定的SQL)
    // ExecuteTransaction(使用事务执行指定的SQL)
    public void ExecuteTransaction()
    {
        _dber.StartTransaction();
    
         try
         {
            for (int i = 0; i < 3; i++)
            {
                 var _parameters = new List<DbParameter>()
                 {
                     _dber.CreateParameter("ID",i.ToString()),
                     _dber.CreateParameter("Name","Name123"),
                     _dber.CreateParameter("CreateTime",DateTime.Now),
                 };
                 var _sql = @"insert table1 (ID,Name,CreateTime) values (@ID,@Name,@CreateTime);";
                 var _isSucceed = _dber.ExecuteTransaction(_sql, _parameters);
            }
         }
         catch (Exception ex)
         {
             _dber.RollbackTransaction();
             return;
         }
            
         _dber.FinishTransaction();
    }
    
    
  6. ExecuteTransaction(使用指定的事务执行指定的SQL)
    // ExecuteTransaction(使用指定的事务执行指定的SQL)
    public void ExecuteTransaction()
    {
        for (int i = 0; i < 3; i++)
        {
            var _key = "Transaction" + i.ToString();
            _dber.StartTransaction(_key);
    
            var _id = i.ToString() + DateTime.Now.ToLongTimeString();
            try
            {
                var _parameters = new List<DbParameter>()
                {
                    _dber.CreateParameter("ID",_id),
                    _dber.CreateParameter("Name","Name123"),
                    _dber.CreateParameter("CreateTime",DateTime.Now),
                };
                var _sql = @"insert table1 (ID,Name,CreateTime) values (@ID,@Name,@CreateTime);";
                var _isSucceed = _dber.ExecuteTransaction(_key, _sql, _parameters);
            }
            catch (Exception ex)
            {
                _dber.RollbackTransaction(_key);
                return;
            }
            
            if (!_dber.FinishTransaction(_key))
            {
                return;
            }
        }
    }
    
    
  7. RollbackTransaction(回滚指定的事务)
    // RollbackTransaction(回滚指定的事务)
    public void RollbackTransaction()
    {
        var _key = "Transaction";
        _dber.StartTransaction(_key);
    
        var _id = nameof(RollbackTransaction);
        
        try
        {
            var _parameters = new List<DbParameter>()
            {
                _dber.CreateParameter("ID",_id),
                _dber.CreateParameter("Name","Name123"),
                _dber.CreateParameter("CreateTime",DateTime.Now),
            };
            var _sql = @"insert table1 (ID,Name,CreateTime) values (@ID,@Name,@CreateTime);";
            var _isSucceed = _dber.ExecuteTransaction(_key, _sql, _parameters);
        }
        catch (Exception ex)
        {
            _dber.RollbackTransaction(_key);
            return;
        }
        
        _dber.RollbackTransaction(_key);
    }
    
  8. QueryTable(查询数据,并返回DataTable)
    public DataTable QueryTable()
    {
        var _parameters = new List<DbParameter>()
        {
            _dber.CreateParameter("ID",123),
        };
        var _sql = "select * from table1 where ID=@ID;";
        return _dber.QueryTable(_sql, _parameters);
    }
    
  9. QueryTables(查询数据,并返回DataSet)
    public DataSet QueryTables()
    {
        var _parameters = new List<DbParameter>()
        {
            _dber.CreateParameter("ID",123),
        };
        var _sql = "select * from table1 where ID=@ID;";
        _sql += "select * from table2 where ID=@ID;";
        return _dber.QueryTables(_sql, _parameters);
    }
    
  10. QueryReader(查询数据,并返回DbDataReader)
public QueryReader QueryReader()
{
    var _parameters = new List<DbParameter>()
    {
        _dber.CreateParameter("ID",123),
    };
    var _sql = "select * from table1 where ID=@ID;";
    return _dber.QueryReader(_sql, _parameters);
}
  1. QueryDictionary (将查询结果的首两列数据转换为Dictionary)
public Dictionary<string, string> QueryDictionary()
{
    var _sql = "select Key,Value from table1 ;";
    return _dber.QueryDictionary<string, string>(_sql);
}
  1. QueryValues (将查询结果的首列数据转换为List)
public List<string> QueryNames()
{
    var _sql = "select Names from table1 ;";
    return _dber.QueryValues<string>(_sql);
}
  1. QueryValue (将查询值转换为long)
public List<long> QueryValue()
{
    var _sql = "select count(1) from table1 ;";
    return _dber.QueryScalar<long>(_sql);
}
  1. IsExistData (查询是否存在数据)
public bool IsExistData()
{
    var _sql = "select 1 from table1 where id=1;";
    return _dber.IsExistData(_sql);
}

IDbSqlTexter使用

  1. 生成实例
    
    // 用于生成SqlServer语句
    IDbSqlTexter _sqltexter = new MsSqlTexter();
    
    
  2. 生成数据库相关的SQL语句
    
    // 生成获取当前数据库信息的SQL语句
    _sqltexter.GetDatabase();
    
     // 生成获取指定数据库信息的SQL语句
    _sqltexter.GetDatabase("database");
    
     // 生成获取数据库信息列表的SQL语句
    _sqltexter.GetDatabaseList();
    
     // 生成创建数据库的SQL语句
    _sqltexter.CreateDatabase("database");
    
     // 生成删除数据库的SQL语句
    _sqltexter.DeleteDatabase("database");
    
    
  3. 生成数据表(Table)相关的SQL语句
    
    // 生成获取当前数据库的指定数据表的数据列信息的SQL语句
    _sqltexter.GetTableColumns("table01");
    // 生成获取指定数据库的指定数据表的数据列信息的SQL语句
    _sqltexter.GetTableColumns("database","table01");
    
     // 生成获取当前数据库的指定数据表信息的SQL语句SQL语句
    _sqltexter.GetTable("table01");
     // 生成获取当前数据库的指定数据表信息的SQL语句SQL语句
    _sqltexter.GetTable("database","table01");
    
     // 生成获取当前数据库的数据表列表的SQL语句
    _sqltexter.GetTableList();
     // 生成获取指定数据库的数据表列表的SQL语句
    _sqltexter.GetTableList("database");
    
     // 生成删除当前数据库的数据表的SQL语句
    _sqltexter.DeleteTable("table01");
     // 生成删除指定数据库的数据表的SQL语句
    _sqltexter.DeleteTable("database","table01");
    
     // 生成创建数据表的SQL语句
    _sqltexter.CreateTable("table01", new List<DbColumn>());
     // 生成创建数据表的SQL语句
    _sqltexter.CreateTable("database", "table01", new List<DbColumn>());
    
    
  4. 生成视图(View)相关的SQL语句
    
    // 生成获取当前数据库的指定View的数据列信息的SQL语句
    _sqltexter.GetViewColumns("view01");
    // 生成获取指定数据库的指定View的数据列信息的SQL语句
    _sqltexter.GetViewColumns("database","view01");
    
     // 生成获取当前数据库的指定View信息的SQL语句SQL语句
    _sqltexter.GetView("view01");
     // 生成获取当前数据库的指定View信息的SQL语句SQL语句
    _sqltexter.GetView("database","view01");
    
     // 生成获取当前数据库的View列表的SQL语句
    _sqltexter.GetViewList();
     // 生成获取指定数据库的View列表的SQL语句
    _sqltexter.GetViewList("database");
    
     // 生成删除当前数据库的View的SQL语句
    _sqltexter.DeleteView("view01");
     // 生成删除指定数据库的View的SQL语句
    _sqltexter.DeleteView("database","view01");
    
    
  5. 生成函数(Function)相关的SQL语句
    
    // 生成获取当前数据库的指定函数信息的SQL语句
    _sqltexter.GetFunction("func01");
    // 生成获取指定数据库的指定函数信息的SQL语句
    _sqltexter.GetFunction("database","func01");
    
     // 生成获取当前数据库的函数列表的SQL语句
    _sqltexter.GetFunctionList();
     // 生成获取指定数据库的函数列表的SQL语句
    _sqltexter.GetFunctionList("database");
    
     // 生成删除当前数据库的Function的SQL语句
    _sqltexter.DeleteFunction("func01");
     // 生成删除指定数据库指定函数的SQL语句
    _sqltexter.DeleteFunction("database","func01");
    
    
  6. 生成存储过程(Procedure)相关的SQL语句
    
    // 生成获取当前数据库的指定存储过程信息的SQL语句
    _sqltexter.GetProcedure("proc01");
    // 生成获取指定数据库的指定存储过程信息的SQL语句
    _sqltexter.GetProcedure("database","proc01");
    
     // 生成获取当前数据库的存储过程列表的SQL语句
    _sqltexter.GetProcedureList();
     // 生成获取指定数据库的存储过程列表的SQL语句
    _sqltexter.GetProcedureList("database");
    
     // 生成删除当前数据库的Procedure的SQL语句
    _sqltexter.DeleteProcedure("proc01");
     // 生成删除指定数据库指定存储过程的SQL语句
    _sqltexter.DeleteProcedure("database","proc01");
    
    

实例使用

  1. 参考JCoder.Db4Net
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值