Követelmények: Olvastam egy cikket az interneten a sqlkata témáról, "SqlKata – Convenient and Easy to Use Sql Query Builder", és úgy érzem, ez a plugin nagyon hasznos, dinamikusan állíthatod be a táblaneveket és feltételeket, hogy megfelelő biztonságos SQL utasításokat generálj, a front-end pedig a sqlkata adatbázis műveleteket végez vizuális űrlapkonfigurációs információkon keresztül, és konfigurálhatsz interfészt programozás és keménykódolás nélkül. Ez hasonló a korábbi jOOQ használatomhoz Java fejlesztési projektekben.
SqlKata
A SqlKata Query Generator egy erőteljes SQL lekérdezésgenerátor, amelyet C# nyelven írnak. Biztonságos és kép-független. A legjobb lekérdezésépítők, mint például a Laravel Query Builder és a Knex inspirálták.
Egy erőteljes dinamikus SQL lekérdezésgenerátor, amely támogatja a SQL Servert, MySQL-t, PostgreSql-t, Oracle-t és Firebird-et.
GitHub cím:A hiperlink bejelentkezés látható. Hivatalos dokumentum címe:A hiperlink bejelentkezés látható.
Az SQL Server előkészíti a tesztadatokat
Először az MSSQL adatbázist használjuk új teszttáblát létrehozni és tesztadatokat generálni, a szkript a következő:
Készíts egy új .NET Core 3.1 konzolos alkalmazást
Add hozzá a SqlKata és SqlKata.Execution, valamint a Microsoft.Data.SqlClient csomagokat a Nuget használatával a következő parancssal:
A konzol kódja a következő:
exec sp_executesql N'SELECT * FROM [TestTableSize] AHOL [MyKeyField] = @p0 ORDER BY (SELECT 0) OFFSET @p1 SOROK CSAK @p2 SOROK ELŐHÍVJÁK',N'@p0 NVARCHAR(4000),@p1 bigint,@p2 int',@p0= N'0000000088',@p1=0,@p2=10
Próbálj meg kérdezni egyetEgy táblázat, amely nem létezik, a hiba a következő:
Kezeletlen kivétel. 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() 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) at Microsoft.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) at Microsoft.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior) at Microsoft.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) a System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) címen a Dapper.SqlMapper.ExecuteReaderWithFlagsFallback(IDbCommand cmd, Boolean wasClosed, CommandBehavior behavior) címen /_//Dapper/SqlMapper.cs:line 1066 at Dapper.SqlMapper.QueryImpl[T](IDbConnection cnn, CommandDefinition parancs, Type effectiveType)+MoveNext() in /_/Dapper/SqlMapper.cs:line 1094 a System.Collections.Generic.List'1..ctor (IEnumerable'1 gyűjtemény) címen at System.Linq.Enumerable.ToList[TSource](IEnumerable'1 forrás) a Dapper.SqlMapper.Query[T](IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Boolean buffered, Nullable'1 commandTimeout, Nullable'1 commandType) in /_/ Dapper/SqlMapper.cs:line 734 at SqlKata.Execution.QueryFactory.Get[T](Query query, IDbTransaction transaction, Nullable'1 timeout) at SqlKata.Execution.QueryExtensions.Get[T](Query query, IDbTransaction transaction, Nullable'1 timeout) at SqlKata.Execution.QueryExtensions.Get(Query query, IDbTransaction transaction, Nullable'1 timeout) at SqlKataDemo.Program.Main(String[] args) in C:\Users\itsvse_pc\source\repos\WindowsFormsApp1\SqlKataDemo\Program.cs:line 20
ClientConnectionId:49158892-5a24-4aa8-8249-232fba2674da Hibaszám:208,Állam:1,Osztály:16
Ha csak SQL utasításokat szeretnénk generálni SqlKatán keresztül, és nem akarjuk végrehajtani őket, a kód a következő:
Fejlettebb lekérdezések
JOIN asztal
Adat beszedése
Adatok frissítése
Adatok törlése
(Vége)
|