Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 6572|Válasz: 4

[.NET mag] [Valódi harc]. NET/C# SQL lekérdezésgenerátor sqlkata alapján

[Linket másol]
Közzétéve: 2022-10-12 22:07:53 | | | |
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)





Előző:A Hynix (Hynix) és Micron (Micron) memóriamodul címkéi részletesen ismertethetők
Következő:Az ESXI 7 ellenőrzi a szerver hoszt memóriamodelljét és méretét
Közzétéve: 2022-10-13 15:19:47 |
Tanulni tanulni, jó
Közzétéve: 2022-10-14 11:07:18 |
Tanulj meg
 Háziúr| Közzétéve: 2025-1-2 12:15:02 |
A LINQKit egy ingyenes kiterjesztéscsomag a LINQ to SQL és az Entity Framework haladó felhasználók számára. :A hiperlink bejelentkezés látható.
 Háziúr| Közzétéve: 2025-1-2 14:20:57 |
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com