Nõuded: Lugesin internetist artiklit sqlkata kohta "SqlKata – mugav ja lihtne kasutada SQL-päringute ehitaja" ning tunnen, et see plugin on väga kasulik – saad dünaamiliselt määrata tabelinimesid ja tingimusi, et genereerida vastavaid turvalisi SQL-lauseid, ning kasutajaliides kutsub sqlkata, et teha andmebaasitoiminguid visuaalse vormi konfiguratsiooniinfo kaudu, ning liidest saab konfigureerida ilma programmeerimise ja kõvakodeerimiseta. See on sarnane minu varasemale jOOQ kasutamisele Java arendusprojektides.
SqlKata
SqlKata päringugeneraator on võimas SQL-päringugeneraator, mis on kirjutatud C# keeles. See on turvaline ja raamist sõltumatu. Inspireeritud parimatest päringute koostajatest, nagu Laravel Query Builder ja Knex.
Võimas dünaamiline SQL päringugeneraator, mis toetab SQL Serverit, MySQL-i, PostgreSql-i, Oracle'i ja Firebirdi.
GitHubi aadress:Hüperlingi sisselogimine on nähtav. Ametliku dokumendi aadress:Hüperlingi sisselogimine on nähtav.
SQL Server valmistab testandmed ette
Esmalt kasutame MSSQL andmebaasi, et luua uus testtabel ja genereerida testandmeid, skript on järgmine:
Loo uus .NET Core 3.1 konsoolirakendus
Lisa SqlKata ja SqlKata.Execution, Microsoft.Data.SqlClient paketid Nugeti abil järgmise käsuga:
Konsoolikood on järgmine:
exec sp_executesql N'SELECT * [TestTableSize] JUUREST, KUS [MyKeyField] = @p0 ORDER BY (SELECT 0) NIHKE @p1 READ TOOVAD JÄRGMISED @p2 READ ONLY',N'@p0 NVARCHAR(4000),@p1 bigint,@p2 int',@p0= N'0000000088',@p1=0,@p2=10
Proovi ühte päringut esitadaTabel, mis ei eksisteeri, viga on järgmine:
Lahendamata erand. Microsoft.Data.SqlClient.SqlException (0x80131904): Invalid object name 'Hei'. at Microsoft.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action'1 wrapCloseInAction) at Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action'1 wrapCloseInAction) at Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at Microsoft.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean&dataReady) at Microsoft.Data.SqlClient.SqlDataReader.TryConsumeMetaData() at Microsoft.Data.SqlClient.SqlDataReader.get_MetaData() at Microsoft.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted) at Microsoft.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean isAsync, Int32 timeout, Task&task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest) at Microsoft.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, TaskCompletionSource'1 completion, Int32 timeout, Task&task, Boolean&usedCache, Boolean asyncWrite, Boolean inRetry, String method) aadressil Microsoft.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) at Microsoft.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior) aadressil Microsoft.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) aadressil System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) aadressil Dapper.SqlMapper.ExecuteReaderWithFlagsFallback (IDbCommand cmd, Boolean wasClosed, CommandBehavior behavior) /_//Dapper/SqlMapper.cs:line 1066 aadressil Dapper.SqlMapper.QueryImpl[T](IDbConnection cnn, CommandDefinition käsk, Type effectiveType)+MoveNext() in /_/Dapper/SqlMapper.cs:line 1094 aadressil System.Collections.Generic.List'1.ctor(IEnumerable'1 kogumik) aadressil System.Linq.Enumerable.ToList[TSource](IEnumerable'1 allikas) aadressil Dapper.SqlMapper.Query[T](IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Boolean buffered, Nullable'1 commandTimeout, Nullable'1 commandType) in /_/ Dapper/SqlMapper.cs:liin 734 at SqlKata.Execution.QueryFactory.Get[T](päringupäring, IDbTransaction tehing, Nullable'1 timeout) at SqlKata.Execution.QueryExtensions.Get[T](päringupäring, IDbTransaction tehing, Nullable'1 timeout) aadressil SqlKata.Execution.QueryExtensions.Get(Query query, IDbTransaction transaction, Nullable'1 timeout) aadressil SqlKataDemo.Program.Main(String[] args) C:\Users\itsvse_pc\source\repos\WindowsFormsApp1\SqlKataDemo\Program.cs:line 20
ClientConnectionId:49158892-5a24-4aa8-8249-232fba2674da Veanumber:208,State:1,Klass:16
Kui tahame lihtsalt genereerida sql-lauseid SqlKata kaudu ega taha neid käivitada, siis kood on järgmine:
Keerukamad päringud
JOIN tabel
Sisesta andmed
Andmete uuendamine
Kustuta andmed
(Lõpp)
|