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)
|