Gereksinimler: İnternette sqlkata hakkında "SqlKata - Kullanışlı ve Kullanımı Kolay Sql Sorgu Oluşturucu" adlı bir makale okudum ve bu eklentinin çok faydalı olduğunu düşünüyorum; tablo isimlerini ve koşullarını dinamik olarak ayarlayarak karşılık gelen güvenli SQL ifadeleri oluşturabilirsiniz, ön uç ise görsel form yapılandırma bilgileri aracılığıyla veritabanı işlemlerini gerçekleştirmek için sqlkata çağırıyor ve programlama ile sert kodlama olmadan bir arayüz yapılandırabilirsiniz. Bu, Java geliştirme projelerinde jOOQ'u daha önce kullandığım şeye benziyor.
SqlKata
SqlKata Sorgu Oluşturucu, C# ile yazılmış güçlü bir SQL sorgu oluşturucudur. Güvenli ve çerçeveye bağlı değildir. Laravel Query Builder ve Knex gibi en iyi sorgu oluşturucularından ilham aldım.
SQL Server, MySql, PostgreSql, Oracle ve Firebird'ü destekleyen güçlü dinamik bir Sql sorgu oluşturucu.
GitHub adresi:Bağlantı girişi görünür. Resmi belge adresi:Bağlantı girişi görünür.
SQL Server test verilerini hazırlayır
İlk olarak, MSSQL veritabanını kullanarak yeni bir test tablosu oluşturuyoruz ve bazı test verileri üretiyoruz, betik şu şekildedir:
Yeni bir .NET Core 3.1 konsol uygulaması oluştur
Nuget kullanarak SqlKata ve SqlKata.Execution, Microsoft.Data.SqlClient paketlerini aşağıdaki komutla ekleyin:
Konsol kodu şu şekildedir:
exec sp_executesql N'SELECT * [TestTableSize]'den BURADA [MyKeyField] = @p0 ORDER by (SELECT 0) OFFSET @p1 SATIR SADECE @p2 SATIR GETIR',N'@p0 nvarchar(4000),@p1 bigint,@p2 int',@p0= N'0000000088',@p1=0,@p2=10
Birini sorgulamayı dene.Var olmayan bir tablo, hata şöyledir:
Çözülemeyen istisna. 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) at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior davranışı) Dapper.SqlMapper.ExecuteReaderWithFlagsFallback(IDbCommand cmd, Boolean wasClosed, CommandBehavior behavior) içinde /_//Dapper/SqlMapper.cs:line 1066 içinde at Dapper.SqlMapper.QueryImpl[T](IDbConnection cnn, CommandDefinition komutu, Type effectiveType)+MoveNext() in /_/Dapper/SqlMapper.cs:line 1094 System.Collections.Generic.List'1.ctor(IEnumerable'1 koleksiyonunda) adresinde. at System.Linq.Enumerable.ToList[TSource](IEnumerable'1 source) at Dapper.SqlMapper.Query[T](IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Boolean buffered, Nullable'1 commandTimeout, Nullable'1 commandType) in /_/ içinde 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 Hata Numarası:208,Durum:1,Sınıf:16
Eğer sadece SqlKata üzerinden sql ifadeleri oluşturmak istiyor ve onları çalıştırmak istemiyoruzsa, kod şöyledir:
Daha gelişmiş sorgular
JOIN tablosu
Veri ekle
Verileri güncelleme
Verileri sil
(Son)
|