Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 6572|Atbildi: 4

[.NET kodols] [Faktiskā cīņa]. NET/C# SQL vaicājumu ģenerators, kas balstīts uz sqlkata

[Kopēt saiti]
Publicēts 2022-10-12 22:07:53 | | | |
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)





Iepriekšējo:Sīki izskaidrotas "Hynix" un "Micron" (Micron) atmiņas moduļu etiķetes
Nākamo:ESXI 7 pārbauda servera resursdatora atmiņas modeli un lielumu
Publicēts 2022-10-13 15:19:47 |
Mācīšanās mācīties, laba lieta
Publicēts 2022-10-14 11:07:18 |
Iemācieties mācīties
 Saimnieks| Publicēts 2025-1-2 12:15:02 |
LINQKit ir bezmaksas paplašinājumu komplekts LINQ SQL un Entity Framework pieredzējušiem lietotājiem. :Hipersaites pieteikšanās ir redzama.
 Saimnieks| Publicēts 2025-1-2 14:20:57 |
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com