See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 6572|Vastuse: 4

[.NET tuum] [Päris lahing]. NET/C# SQL päringugeneraator, mis põhineb sqlkatal

[Kopeeri link]
Postitatud 2022-10-12 22:07:53 | | | |
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)





Eelmine:Hynix (Hynix) ja Micron (Micron) mälumooduli sildid on üksikasjalikult selgitatud
Järgmine:ESXI 7 kontrollib serveri hosti mälumudelit ja suurust
Postitatud 2022-10-13 15:19:47 |
Õppimine – hea asi
Postitatud 2022-10-14 11:07:18 |
Õpi õppima
 Üürileandja| Postitatud 2025-1-2 12:15:02 |
LINQKit on tasuta laienduste komplekt LINQ-i SQL-i ja Entity Frameworki edasijõudnud kasutajatele. :Hüperlingi sisselogimine on nähtav.
 Üürileandja| Postitatud 2025-1-2 14:20:57 |
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com