JCoder.Db4Net 2.21.4

.NET 5.0 .NET Standard 2.1 .NET Framework 4.7.2
dotnet add package JCoder.Db4Net --version 2.21.4
NuGet\Install-Package JCoder.Db4Net -Version 2.21.4
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="JCoder.Db4Net" Version="2.21.4" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add JCoder.Db4Net --version 2.21.4
#r "nuget: JCoder.Db4Net, 2.21.4"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install JCoder.Db4Net as a Cake Addin
#addin nuget:?package=JCoder.Db4Net&version=2.21.4

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

JCoder.Db4Net

属性
作者(Authors) Jackie Law
版权(Copyright) Copyright © Jackie Law. All rights reserved.
协议 MIT
联系(QQ) 1378071853
联系(Wechat) JackieLaw1024
联系(Email) JackieLaw-dev@outlook.com

[TOC]


架构说明

JCoder.Db4Net
语言 C#
协议 MIT
.Net框架 .Net Standard2.1; .Net Framework 4.7.2; .Net 5; .Net 6;
简述 Database类库,一款为方便使用数据库的操作类库。

引用类库

引用类库 版本
- -

相关类库

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

获取方式

  1. 版本要求:>=2.21.4
  2. 以版本2.21.4为例
获取方式 描述
Package Manager Install-Package JCoder.Db4Net -Version 2.21.4
.Net CLI dotnet add package JCoder.Db4Net --version 2.21.4
PackageReference <PackageReference Include="JCoder.Db4Net" Version="2.21.4" />
Paket CLI paket add JCoder.Db4Net --version 2.21.4
Script&Interactive #r "nuget: JCoder.Db4Net, 2.21.4"
Cake // Install as a Cake Addin<br/>#addin nuget:?package=JCoder.Db4Net&version=2.21.4<br/><br/>// Install as a Cake Tool<br/>#tool nuget:?package=JCoder.Db4Net&version=2.21.4

使用说明

主要类与接口

名称 类型 描述
IDbSqlTexter 接口 主要用于SQL语句的生成。
IDbBuilder 接口 主要用于数据库结构的处理。
IDbOperator 接口 主要用于SQL的执行与处理。
IFactoryDbOperator 接口 通过ProviderFactory方式,进行SQL的执行与处理。<br/>主要有以下实现:MsSqlFactoryOperator、SQLiteFactoryOperator 、MySqlFactoryOperator 。
Db 工具类,主要用于数据库通用的处理。

创建实例-IDbOperator\IFactoryDbOperator

  1. 创建实例
    
    // MySql, 需要先在项目里引用或加载MySql官方库MySql.Data.dll。
    IDbOperator _dber = new MySqlFactoryOperator()
    {
        ConnectionString = "server=127.0.0.1;database=test;uid=user;pwd=testpassword;Connect Timeout=18000"
    };
    
    // SQLite, 需要先在项目里引用或加载Sqlite官方库System.Data.SQLite.dll。
    IDbOperator _dber = new SQLiteFactoryOperator()
    {
        ConnectionString = "Data Source=.\data\test.db3;"
    };
    
    // Sql Server, 需要先在项目里引用或加载Sql Server官方库System.Data.SqlClient.dll。
    IDbOperator _dber = new MsSqlFactoryOperator()
    {
        ConnectionString = "Server=127.0.0.1;Database=test;Uid = user; Pwd=testpassword;"
    };
    
    
  2. 使用创建全局实例
    
    // MySql
    IDbOperator _dber = Db.Hub.GetDberOrNew<MySqlFactoryOperator>();
    _dber.ConnectionString = "server=127.0.0.1;database=test;uid=user;pwd=testpassword;Connect Timeout=18000";
    
    

IDbOperator使用

  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. 生成实例
    
    // 用于生成MySql语句,引用JCoder.Db4Net.MySql
    IDbSqlTexter _sqltexter = new MySqlTexter();
    
    // 用于生成Sqlite语句,引用JCoder.Db4Net.Sqlite
    IDbSqlTexter _sqltexter = new SqliteTexter();
    
    // 用于生成SqlServer语句,引用JCoder.Db4Net.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");
    
    
Product Versions
.NET net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows net7.0 net7.0-android net7.0-ios net7.0-maccatalyst net7.0-macos net7.0-tvos net7.0-windows
.NET Core netcoreapp3.0 netcoreapp3.1
.NET Standard netstandard2.1
.NET Framework net472 net48
MonoAndroid monoandroid
MonoMac monomac
MonoTouch monotouch
Tizen tizen60
Xamarin.iOS xamarinios
Xamarin.Mac xamarinmac
Xamarin.TVOS xamarintvos
Xamarin.WatchOS xamarinwatchos
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.
  • .NETFramework 4.7.2

    • No dependencies.
  • .NETStandard 2.1

    • No dependencies.
  • net5.0

    • No dependencies.
  • net6.0

    • No dependencies.

NuGet packages (4)

Showing the top 4 NuGet packages that depend on JCoder.Db4Net:

Package Downloads
JCoder.Db4Net.ORM

A ORM library based on the JCoder.Db4Net. (基于JCoder.Db4Net的ORM库)

JCoder.Db4Net.Sqlite

A library based on JCoder.Db4Net and it support Sqlite. (一个基于JCoder.Db4Net且支持Sqlite的库)

JCoder.Db4Net.SqlServer

A library based on JCoder.Db4Net and it support microsoft sql server. (一个基于JCoder.Db4Net且支持sql server的库)

JCoder.Db4Net.MySql

A library based on JCoder.Db4Net and it support Mysql.(一个基于JCoder.Db4Net且支持Mysql的库)

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.21.4 231 11/8/2022
2.20.12 234 11/4/2022
2.19.5 469 10/14/2022
2.18.6 461 10/13/2022
2.13.3 515 6/5/2022
2.12.3 534 5/25/2022
2.11.4 561 5/13/2022

Please contact Jackie by QQ 1378071853 or E-mail JackieLaw-dev@outlook.com;