Persyaratan: Saya membaca artikel tentang sqlkata di Internet, "SqlKata - Convenient and Easy to Use Sql Query Builder", dan saya merasa bahwa plugin ini sangat berguna, Anda dapat secara dinamis mengatur nama dan kondisi tabel untuk menghasilkan pernyataan SQL aman yang sesuai, dan front-end memanggil sqlkata untuk melakukan operasi database melalui informasi konfigurasi formulir visual, dan Anda dapat mengonfigurasi antarmuka tanpa pemrograman dan hardcoding. Ini mirip dengan penggunaan jOOQ saya sebelumnya dalam proyek pengembangan Java.
Kata SqlKata
SqlKata Query Generator adalah generator kueri SQL yang kuat yang ditulis dalam C#. Ini aman dan agnostik bingkai. Terinspirasi oleh pembuat kueri teratas yang tersedia, seperti Laravel Query Builder dan Knex.
Generator kueri SQL dinamis yang kuat yang mendukung Sql Server, MySql, PostgreSql, Oracle, dan Firebird.
Alamat GitHub:Login hyperlink terlihat. Alamat dokumen resmi:Login hyperlink terlihat.
SQL Server menyiapkan data pengujian
Pertama, kami menggunakan database MSSQL untuk membuat tabel pengujian baru dan menghasilkan beberapa data pengujian, skripnya adalah sebagai berikut:
Membuat aplikasi konsol .NET Core 3.1 baru
Tambahkan paket SqlKata dan SqlKata.Execution, Microsoft.Data.SqlClient menggunakan Nuget dengan perintah berikut:
Kode konsol adalah sebagai berikut:
exec sp_executesql N'SELECT * FROM [TestTableSize] WHERE [MyKeyField] = @p0 ORDER BY (SELECT 0) OFFSET @p1 ROWS FETCH NEXT @p2 ROWS ONLY',N'@p0 nvarchar(4000),@p1 bigint,@p2 int',@p0= N'0000000088',@p1=0,@p2=10
Coba kueri salah satuTabel yang tidak ada, kesalahannya adalah sebagai berikut:
Pengecualian yang tidak ditangani. Microsoft.Data.SqlClient.SqlException (0x80131904): Nama objek tidak valid 'Hei'. di Microsoft.Data.SqlClient.SqlConnection.OnError(Pengecualian SqlException, Boolean breakConnection, Action'1 wrapCloseInAction) di Microsoft.Data.SqlClient.SqlInternalConnection.OnError(Pengecualian SqlException, Boolean breakConnection, Action'1 wrapCloseInAction) di Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, pemanggil BooleanHasConnectionLock, Boolean asyncClose) di Microsoft.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) di Microsoft.Data.SqlClient.SqlDataReader.TryConsumeMetaData() di Microsoft.Data.SqlClient.SqlDataReader.get_MetaData() di Microsoft.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted) di 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) di 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) di Microsoft.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, metode String) di Microsoft.Data.SqlClient.SqlCommand.ExecuteReader(Perilaku CommandBehavior) di Microsoft.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior Behavior) di System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(Perilaku Command) di Dapper.SqlMapper.ExecuteReaderWithFlagsFallback(IDbCommand cmd, Boolean wasClosed, perilaku CommandBehavior) di /_/Dapper/SqlMapper.cs:line 1066 di Dapper.SqlMapper.QueryImpl[T](IDbConnection cnn, perintah CommandDefinition, Ketik effectiveType)+MoveNext() di /_/Dapper/SqlMapper.cs:line 1094 di System.Collections.Generic.List'1..ctor(koleksi IEnumerable'1) di System.Linq.Enumerable.ToList[TSource](sumber IEnumerable'1) di Dapper.SqlMapper.Query[T](IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Boolean buffered, Nullable'1 commandTimeout, Nullable'1 commandType) di /_/ Dapper/SqlMapper.cs: jalur 734 di SqlKata.Execution.QueryFactory.Get[T](Kueri kueri, transaksi IDbTransaction, batas waktu Nullable'1) di SqlKata.Execution.QueryExtensions.Get[T](Kueri kueri, transaksi IDbTransaction, batas waktu Nullable'1) di SqlKata.Execution.QueryExtensions.Get(Kueri kueri, transaksi IDbTransaction, batas waktu Nullable'1) di SqlKataDemo.Program.Main(String[] args) di C:\Users\itsvse_pc\source\repos\WindowsFormsApp1\SqlKataDemo\Program.cs:line 20
ClientConnectionId:49158892-5a24-4aa8-8249-232fba2674da Nomor Kesalahan: 208, Status: 1, Kelas: 16
Jika kita hanya ingin menghasilkan pernyataan sql melalui SqlKata dan tidak ingin menjalankannya, kodenya adalah sebagai berikut:
Kueri yang lebih lanjutan
Tabel JOIN
Sisipkan data
Perbarui data
Menghapus data
(Akhir)
|