CPSysUDB 3.0.0
See the version list below for details.
dotnet add package CPSysUDB --version 3.0.0
NuGet\Install-Package CPSysUDB -Version 3.0.0
<PackageReference Include="CPSysUDB" Version="3.0.0" />
paket add CPSysUDB --version 3.0.0
#r "nuget: CPSysUDB, 3.0.0"
// Install CPSysUDB as a Cake Addin #addin nuget:?package=CPSysUDB&version=3.0.0 // Install CPSysUDB as a Cake Tool #tool nuget:?package=CPSysUDB&version=3.0.0
CPSysUDB
NuGet Packages .NET Framework 4.7.2
pt-BR
Descrição
A biblioteca foi criada com a finalidade de tornar o desenvolvimento de uma aplicação mais ágil, facilitando a criação e atualização do banco de dados, comunicação com SQL Server, MySQL, Firebird e SQLite, contolar as rotinas de banco de dados e integração universal entre todas as plataformas compatíveis com C#.
Motivação
- Criar um sistema em um banco de dados específico mas em algum cliente era necessário outro banco de dados
- Criação e atualização do banco de dados do cliente pela própria aplicação
- Não usar querys de banco de dados
CPSysSQLFramework3
Esta versão é a idéia final do projeto com diversas melhorias como o uso de entidades criadas pelo desenvolvedor.
Recursos
- Uso de entidades (classes), cada entidade é uma tabela no banco de dados
- Rotina para sempre recriar o banco de dados (muito útil para desenvolvimento) com opção para desabilitar
- Controle total das rotinas de criação e atualização do banco de dados
- Comunicação híbrida com SQL Server, MySQL, Firebird e SQLite sem necessidade de criar querys separadas apenas trocando os dados de conexão
- Auto atualização do banco de dados, tabelas e campos
- Criação de PK com auto incremento e FK
- Respeitar regras do banco de dados
- Cria o banco de dados automaticamente
- Create DataBase, Create Table, Insert, Update, Delete, Select
- Where, Order By, Group By, Union, Limit, offset e Joins
- Suporte para funções do banco de dados como GETDATE e DATEADD
- Suporte para usar um campo de uma tabela no where.
- Suporte para comando distinct.
- Criação de funções, eventos e gatilhos dentro da biblioteca.
- Uso das funções min, max, avg, sum, count, upper, lower, trim para os campos do select e where.
Compatibilidades
- Suporte para int, string, DateTime, double e enum
- Compatível com WEB e Desktop
Restições
- Respeitar as regras do banco de dados
- Criar as tabelas em ordem de dependëncia
Como Usar
- Importe a biblioteca
using CPSysUDB;
- Inicie uma conexão
// cria conexão de forma normal
CPSysSQLFramework3 cPSysSQLFramework3 = new CPSysSQLFramework3(CPSysUDB.Configuration.ConnectionData.CreateConnectionSQLSRV(@"RAFAEL-PC\SQLEXPRESS", true, "db_test3", "sa", "*****"), true,
true);// indica que a conexão será persistente, sendo nexessário usar a função CloseConnection()
CPSysSQLFramework3 cPSysSQLFramework3 = new CPSysSQLFramework3(CPSysUDB.Configuration.ConnectionData.CreateConnectionMYSQL(@"localhost", true, "db_test3", "root", ""), true, true);
CPSysSQLFramework3 cPSysSQLFramework3 = new CPSysSQLFramework3(CPSysUDB.Configuration.ConnectionData.CreateConnectionFIREBIRD(@"localhost", true, "db_test3.fdb", "SYSDBA", "masterkey"), true, true);
CPSysSQLFramework3 cPSysSQLFramework3 = new CPSysSQLFramework3(CPSysUDB.Configuration.ConnectionData.CreateConnectionSQLITE(@"db_test3.sqlite", "Version=3;"), true, true);
// cria conexão encriptada
CPSysSQLFramework3.CreateConfigFile("darabaseconfig.cfsq", CPSysUDB.Configuration.ConnectionData.CreateConnectionSQLSRV(@"RAFAEL-PC\SQLEXPRESS", true, "db_test3", "sa", "****"), "87654321", "123456", "12345678");
CPSysSQLFramework3.CreateConfigFile("darabaseconfig.cfsq", CPSysUDB.Configuration.ConnectionData.CreateConnectionMYSQL(@"localhost", true, "db_test3", "root", ""), "87654321", "123456", "12345678");
CPSysSQLFramework3.CreateConfigFile("darabaseconfig.cfsq", CPSysUDB.Configuration.ConnectionData.CreateConnectionFIREBIRD(@"localhost", true, "db_test3.fdb", "SYSDBA", "masterkey"), "87654321", "123456", "12345678");
CPSysSQLFramework3.CreateConfigFile("darabaseconfig.cfsq", CPSysUDB.Configuration.ConnectionData.CreateConnectionSQLITE(@"db_test3.sqlite", "Version=3;"), "87654321", "123456", "12345678");
CPSysSQLFramework3 cPSysSQLFramework3 = new CPSysSQLFramework3("darabaseconfig.cfsq", "87654321", "12345678", "123456", true, true);
- Excluír todas as tabelas e criar novamente, é útil para o desenvolvimento mas para produção é necessário remover o comando
CPSysSQLFramework3.DropAllTables();// reinicie o banco de dados do zero
- Crie a sua entidade
public enum Grade
{
A, B, C, D, F
}
[CPSysUDB.Attribute.ClassAttribute("e",
"prefixo")]// declare a entidade como objeto do banco de dados dando a ela um apelido e prefixo
public class Enrollment : Table
{
[CPSysUDB.Attribute.SQLAttribute(CPSysUDB.Enums.SQLTypes.PRIMARY_KEY_IDENTITY)]// declare um campo como PK ou PK auto incremento
public int EnrollmentID { get; set; }
[CPSysUDB.Attribute.SQLAttribute(CPSysUDB.Enums.SQLTypes.FOREIGN_KEY, typeof(Course), "CourseID")]// declare um campo como FK
public int CourseID { get; set; }
[CPSysUDB.Attribute.SQLAttribute(CPSysUDB.Enums.SQLTypes.FOREIGN_KEY, typeof(Student), "ID")]
public int StudentID { get; set; }
[CPSysUDB.Attribute.SQLAttribute(CPSysUDB.Enums.SQLTypes.NORMAL)]// declare um campo normal, é necessário declarar todos os camps que será da tabela
public Grade Grade { get; set; }
}
- Crie as tabelas
CPSysSQLFramework3.CreateOrAlterTable<Enrollment>();
- Insira dados por objeto
Enrollment enrollment = new Enrollment();
enrollment.CourseID = 1;
enrollment.StudentID = 1;
enrollment.Grade = Grade.A;
enrollment.Insert<Enrollment>();
cPSysSQLFramework2.Execute(enrollment);
- Atualize dados
Enrollment enrollment = new Enrollment();
enrollment.Update("Grade", Grade.A);
enrollment.Where<Enrollment>("Id", Command.EQUALS, 1);
cPSysSQLFramework2.Execute(enrollment);
- Exclua dados
Enrollment enrollment = new Enrollment();
enrollment.Delete();
enrollment.Where<Enrollment>("Id", Command.EQUALS, 1);
cPSysSQLFramework2.Execute(enrollment);
- Consulte dados
Enrollment enrollment = new Enrollment();
enrollment.Select<Enrollment>();
enrollment.Where<Enrollment>("id", CPSysUDB.Enums.Command.BIGGEREQUALS, 1);
enrollment.OrderBy<Enrollment>("id", CPSysUDB.Enums.Order.ASC);
enrollment.GroupBy<Enrollment>("id");
enrollment.Distinct();
enrollment.Limit(1000);
enrollment.Offset(1, 1000);
DataSet ds1 = cPSysSQLFramework3.Query(acc);// SELECUTA O SELECT
if (ds1 != null)
{
Console.WriteLine(" COUNT: " + ds1.Tables[0].Rows.Count);
string column = "", rows = "";
foreach (DataColumn dataColumn in ds1.Tables[0].Columns)
{
column = column + " # " + dataColumn.Caption;
}
Console.WriteLine(" " + column);
foreach (DataRow dataRow in ds1.Tables[0].Rows)
{
rows = "";
foreach (var item in dataRow.ItemArray)
{
rows = rows + " # " + item;
}
Console.WriteLine(" " + rows);
}
}
- Criando funções
cPSysSQLFramework3.DeclareFunction("function_teste", (sender, e) => {
Enrollment enrollment = (Enrollment)evento;
cPSysSQLFramework3.Execute(enrollment);
if (cPSysSQLFramework3.ErrorMsg != "")
{
Console.WriteLine(" ERRO: " + cPSysSQLFramework3.ErrorMsg);
}
});
- Executando Funções
Enrollment enrollment = new Enrollment();
enrollment.CourseID = 1;
enrollment.StudentID = 1;
enrollment.Grade = Grade.A;
enrollment.Insert<Enrollment>();
cPSysSQLFramework3.ExecuteFunction("function_teste", enrollment);
- Criando gatilhos
cPSysSQLFramework3.DeclareTrigger<Course>(
new CPSysUDB.Enums.TriggerType[] { CPSysUDB.Enums.TriggerType.CREATE, CPSysUDB.Enums.TriggerType.ALTER, CPSysUDB.Enums.TriggerType.INSERT }, (sender, e) =>
{
TriggerArgs trg = (TriggerArgs)sender;
Console.WriteLine("Msg: " + trg.Msg);
Console.WriteLine("Response: " + trg.Response);
Console.WriteLine("TriggerType: " + trg.TriggerType);
Console.WriteLine(trg.Query);
});
- Criando eventos
cPSysSQLFramework3.DeclareEvent(1, CPSysUDB.Enums.TypeEvent.SECONDS, (sender, e) => {
Console.WriteLine("EVENT: 1 SECONDS " + DateTime.Now);
});
- Criando apelidos
Enrollment enrollment = new Enrollment();
enrollment.Select<Enrollment>("EnrollmentID", "id");
enrollment.Select<Enrollment>("Grade", "grade");
DataSet ds4 = cPSysSQLFramework3.Query(acc);// SELECUTA O SELECT
if (ds4 != null)
{
Console.WriteLine(" COUNT: " + ds4.Tables[0].Rows.Count);
string column = "", rows = "";
foreach (DataColumn dataColumn in ds4.Tables[0].Columns)
{
column = column + " # " + dataColumn.Caption;
}
Console.WriteLine(" " + column);
foreach (DataRow dataRow in ds4.Tables[0].Rows)
{
rows = "";
foreach (var item in dataRow.ItemArray)
{
rows = rows + " # " + item;
}
Console.WriteLine(" " + rows);
}
}
- Criando funções do select
enrollment = new Enrollment();
enrollment.Select<Enrollment>("Id", FieldFunction.SUM, "Sum");
DataSet ds5 = cPSysSQLFramework3.Query(enrollment);
if (ds5 != null)
{
Console.WriteLine(" COUNT: " + ds5.Tables[0].Rows.Count);
string column = "", rows = "";
foreach (DataColumn dataColumn in ds5.Tables[0].Columns)
{
column = column + " # " + dataColumn.Caption;
}
Console.WriteLine(" " + column);
foreach (DataRow dataRow in ds5.Tables[0].Rows)
{
rows = "";
foreach (var item in dataRow.ItemArray)
{
rows = rows + " # " + item;
}
Console.WriteLine(" " + rows);
}
}
- Fechando a conexão
cPSysSQLFramework3.CloseConnection();
CREATOR
Follow me for my next creations
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET Framework | net472 is compatible. net48 was computed. net481 was computed. |
-
- FirebirdSql.Data.FirebirdClient (>= 9.0.1)
- MySql.Data (>= 8.0.19)
- System.Data.SQLite (>= 1.0.116)
- Ubiety.Dns.Core (>= 4.1.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
[pt-BR]
- Nova varsão com facilidades a utilização;
[en-US]
- New version with ease of use;