Prasības: Es izlasīju rakstu par sqlkata internetā "SqlKata - ērts un viegli lietojams SQL vaicājumu veidotājs", un es uzskatu, ka šis spraudnis ir ļoti noderīgs, jūs varat dinamiski iestatīt tabulu nosaukumus un nosacījumus, lai ģenerētu atbilstošus drošus SQL paziņojumus, un priekšgals izsauc sqlkata, lai veiktu datu bāzes darbības, izmantojot vizuālo veidlapu konfigurācijas informāciju, un jūs varat konfigurēt saskarni bez programmēšanas un hardkodēšanas. Tas ir līdzīgs manai iepriekšējai jOOQ izmantošanai Java izstrādes projektos.
SqlKata
SqlKata vaicājumu ģenerators ir jaudīgs SQL vaicājumu ģenerators, kas rakstīts C#. Tas ir drošs un rāmja agnostisks. Iedvesmojoties no populārākajiem pieejamiem vaicājumu veidotājiem, piemēram, Laravel Query Builder un Knex.
Jaudīgs dinamisks SQL vaicājumu ģenerators, kas atbalsta Sql Server, MySql, PostgreSql, Oracle un Firebird.
GitHub adrese:Hipersaites pieteikšanās ir redzama. Oficiālā dokumenta adrese:Hipersaites pieteikšanās ir redzama.
SQL Server sagatavo testa datus
Pirmkārt, mēs izmantojam MSSQL datu bāzi, lai izveidotu jaunu testa tabulu un ģenerētu dažus testa datus, skripts ir šāds:
Jaunas .NET Core 3.1 konsoles programmas izveide
Pievienojiet SqlKata un SqlKata.Execution, Microsoft.Data.SqlClient pakotnes, izmantojot Nuget ar šādu komandu:
Konsoles kods ir šāds:
exec sp_executesql N'SELECT * FROM [TestTableSize] WHERE [MyKeyField] = @p0 ORDER BY (SELECT 0) OFFSET @p1 ROWS FETCH NEXT @p2 ROWS ONLY',N'@p0 nvarchar(4000),@p1 bigint,@p2 int',@p0= N'0000000088',@p1=0,@p2=10
Mēģiniet vaicāt vienuTabula, kas neeksistē, kļūda ir šāda:
Neapstrādāts izņēmums. Microsoft.Data.SqlClient.SqlException (0x80131904): nederīgs objekta nosaukums 'Hei'. pie Microsoft.Data.SqlClient.SqlConnection.OnError(SqlException izņēmums, Būla pārtraukumsConnection, Action'1 wrapCloseInAction) pie Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException izņēmums, Būla pārtraukumsConnection, Action'1 wrapCloseInAction) at Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Būla zvanītājsHasConnectionLock, Būla asyncClose) vietnē Microsoft.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) vietnē Microsoft.Data.SqlClient.SqlDataReader.TryConsumeMetaData() pie Microsoft.Data.SqlClient.SqlDataReader.get_MetaData() vietnē Microsoft.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Būla isInternal, Būla forDescribeParameterEncryption, Būla shouldCacheForAlwaysEncrypted) vietnē Microsoft.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Būla returnStream, Būla isAsync, Int32 taimauts, Task& task, Būla asyncWrite, Būla inRetry, SqlDataReader ds, Būla describeParameterEncryptionRequest) pie Microsoft.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Būla returnStream, TaskCompletionSource'1 pabeigšana, Int32 taimauts, Task& task, Boolean& usedCache, Būla asyncWrite, Būla inRetry, String method) vietnē Microsoft.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Būla returnStream, virknes metode) vietnē Microsoft.Data.SqlClient.SqlCommand.ExecuteReader(uzvedība CommandBehavior) vietnē Microsoft.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) vietnē System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) vietnē Dapper.SqlMapper.ExecuteReaderWithFlagsFallback(IDbCommand cmd, Boolean wasClosed, CommandBehavior behavior) /_/Dapper/SqlMapper.cs:line 1066 vietnē Dapper.SqlMapper.QueryImpl[T](IDbConnection cnn, komanda CommandDefinition, tips effectiveType)+MoveNext() in /_/Dapper/SqlMapper.cs:line 1094 System.Collections.Generic.List'1..ctor(IEnumerable'1 kolekcija) vietnē System.Linq.Enumerable.ToList[TSource](IEnumerable'1 avots) at Dapper.SqlMapper.Query[T](IDbConnection cnn, String sql, Object param, IDbTransaction transakcija, Būla buferis, Nullable'1 commandTimeout, Nullable'1 commandType) /_/ Dapper/SqlMapper.cs:line 734 pie SqlKata.Execution.QueryFactory.Get[T](vaicājuma vaicājums, IDbTransaction transakcija, nullable'1 taimauts) at SqlKata.Execution.QueryExtensions.Get[T](vaicājuma vaicājums, IDbTransaction transakcija, nullable'1 taimauts) at SqlKata.Execution.QueryExtensions.Get(Vaicājuma vaicājums, IDbTransaction transakcija, Nullable'1 taimauts) pie SqlKataDemo.Program.Main(String[] argumenti) C:\Users\itsvse_pc\source\repos\WindowsFormsApp1\SqlKataDemo\Program.cs:line 20
ClientConnectionId:49158892-5a24-4aa8-8249-232fba2674da Kļūdas numurs: 208, valsts: 1, klase: 16
Ja mēs vienkārši vēlamies ģenerēt sql paziņojumus, izmantojot SqlKata, un nevēlamies tos izpildīt, kods ir šāds:
Detalizētāki vaicājumi
JOIN galds
Datu ievietošana
Datu atjaunināšana
Datu dzēšana
(Beigas)
|