Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 6572|Vastaus: 4

[.NET Core] [Varsinaista taistelua]. NET/C# SQL-kyselygeneraattori, joka perustuu sqlkataan

[Kopioi linkki]
Julkaistu 2022-10-12 22:07:53 | | | |
Vaatimukset: Luin internetistä artikkelin sqlkatasta nimeltä "SqlKata – Kätevä ja helppokäyttöinen Sql Query Builder", ja koen, että tämä lisäosa on erittäin hyödyllinen, sillä voit dynaamisesti asettaa taulujen nimet ja ehdot tuottaaksesi vastaavia turvallisia SQL-lauseita, ja etupää kutsuu sqlkataa suorittamaan tietokantaoperaatioita visuaalisen lomakkeen konfiguraatiotiedon avulla, ja voit konfiguroida rajapinnan ilman ohjelmointia ja kovakoodausta. Tämä on samankaltaista kuin aiempi jOOQ:n käyttö Java-kehitysprojekteissa.

SqlKata

SqlKata Query Generator on tehokas Sql-kyselygeneraattori, joka on kirjoitettu C#:lla. Se on turvallinen ja kehyksestä riippumaton. Inspiroitunut parhaista saatavilla olevista kyselyjen rakentajista, kuten Laravel Query Builderista ja Knexistä.

Tehokas dynaaminen SQL-kyselygeneraattori, joka tukee SQL Serveriä, MySQL:ää, PostgreSql:ää, Oraclea ja Firebirdiä.

GitHub-osoite:Hyperlinkin kirjautuminen on näkyvissä.
Virallinen asiakirjan osoite:Hyperlinkin kirjautuminen on näkyvissä.

SQL Server valmistaa testitiedot

Ensiksi käytämme MSSQL-tietokantaa luodaksemme uuden testitaulukon ja tuottaaksemme testidataa, skripti on seuraava:



Luo uusi .NET Core 3.1 -konsolisovellus

Lisää SqlKata- ja SqlKata.Execution-, Microsoft.Data.SqlClient-paketit Nugetilla seuraavalla komennolla:


Konsolikoodi on seuraava:

exec sp_executesql N'SELECT * from [TestTableSize] MISSÄ [MyKeyField] = @p0 JÄRJESTYS (VALITSE 0) OFFSET @p1 RIVIT NOUTAVAT SEURAAVA @p2 VAIN RIVIÄ',N'@p0 NVARCHAR(4000),@p1 bigint,@p2 int',@p0= N'0000000088',@p1=0,@p2=10



Kokeile kysyä yksiTaulukko, jota ei ole olemassa, virhe on seuraava:

Käsittelemätön poikkeus. Microsoft.Data.SqlClient.SqlException (0x80131904): Virheellinen objektinimi '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-metodi)
   osoitteessa Microsoft.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   osoitteessa Microsoft.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior)
   osoitteessa Microsoft.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
   osoitteessa System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
   osoitteessa Dapper.SqlMapper.ExecuteReaderWithFlagsFallback(IDbCommand cmd, Boolean wasClosed, CommandBehavior behavior) muodossa /_//Dapper/SqlMapper.cs:rivi 1066
   osoitteessa Dapper.SqlMapper.QueryImpl[T](IDbConnection cnn, CommandDefinition-komento, Type effectiveType)+MoveNext() in /_/Dapper/SqlMapper.cs:line 1094
   osoitteessa System.Collections.Generic.List'1.ctor(IEnumerable'1 -kokoelma)
   osoitteessa System.Linq.Enumerable.ToList[TSource](IEnumerable'1 lähde)
   at Dapper.SqlMapper.Query[T](IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Boolean buffered, Nullable'1 commandTimeout, Nullable'1 commandType) in /_/ Dapper/SqlMapper.cs:rivi 734
   at SqlKata.Execution.QueryFactory.Get[T](Query query, IDbTransaction transaction, Nullable'1 timeout)
   osoitteessa SqlKata.Execution.QueryExtensions.Get[T](Kyselykysely, IDbTransaction-transaktio, Nullable'1-aikakatkaisu)
   at SqlKata.Execution.QueryExtensions.Get(Query query, IDbTransaction transaction, Nullable'1 timeout)
   osoitteessa SqlKataDemo.Program.Main(String[] args) muodossa C:\Users\itsvse_pc\source\repos\WindowsFormsApp1\SqlKataDemo\Program.cs:rivi 20
ClientConnectionId:49158892-5a24-4aa8-8249-232fba2674da
Virhenumero:208,Tila:1,Luokka:16


Jos haluamme vain generoida SQL-lauseita SqlKatan kautta emmekä halua suorittaa niitä, koodi on seuraava:



Edistyneemmät kyselyt

JOIN-taulukko


Lisää tiedot


Päivitä tiedot


Poista tiedot

(Loppu)





Edellinen:Hynix (Hynix) ja Micron (Micron) -muistimoduulin tunnisteet selitetään yksityiskohtaisesti
Seuraava:ESXI 7 tarkistaa palvelimen isännän muistimallin ja koon
Julkaistu 2022-10-13 klo 15:19:47 |
Oppia oppimaan, hyvä asia
Julkaistu 2022-10-14 klo 11:07:18 |
Opettele oppimaan
 Vuokraisäntä| Julkaistu 2025-1-2 klo 12:15:02 |
LINQKit on ilmainen laajennuspaketti LINQ:n ja SQL:n sekä Entity Frameworkin edistyneille käyttäjille. :Hyperlinkin kirjautuminen on näkyvissä.
 Vuokraisäntä| Julkaistu 2025-1-2 klo 14:20:57 |
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com