A fluent SQL query builder for C#
var query = db.Query("Books").OrderByDesc("PublishingDate");
if(Request.Has("category.name"))
{
var category = Request.Get("category.name");
query.Join("Categories", "Categories.Id", "Books.CategoryId")
.Where("Categories.Name", category);
}
var recentBooks = query.Limit(10).Get();
You will be able to write complex queries without hitting the docs
It uses the parameter binding technique, to prevent SQL injection.
It supports Operator whitelisting.
It Supports SqlServer, MySql, PostgreSql, Oracle, SQLite and Firebird.
Sub queries, nested Where conditions, Common Table Expressions, Complex Join statements and more.
Don't wait, add your own methods.
Extend the current compiler to support your favorite database.
Available when you need the little push, Date/Time and String helper methods like
WhereDate(), WhereTime(), WhereContains() and many more.
No long setup required, just write the query and get the data.
With few lines of code, you can start building your app.
It cannot be simpler!
var compiler = new SqlServerCompiler();
var db = new QueryFactory(connection, compiler);
var books = db.Query("Books").Get();
db.Query("Books").Where(q =>
q.Where("Stock", "<", 50).OrWhere("InHighDemand", 1)
).Union(
db.Query("Books").Where("Price", "<", 10)
);
Forget about hacky solutions, and write the query the way you want it from the begining.
Unleash your SQL skill and write performant queries from the first minute.
A better way to expose your queries.
Share your base queries with your team, and let them build on top of it.
Kind of stored procedure but written in C#.
// define the base queries
class TransactionService
{
public Query All()
{
return db.Query("Transactions").WhereTrue("IsApproved");
}
public Query Latest(int top = 10)
{
return All().OrderByDesc("Date").Take(top);
}
}
// then extend them as needed per request
var data = transactionService.Latest(10)
.Join("Accounts", "Accounts.Id", "AccountId")
.Get();
SqlKata is compatible with both .NET Core and .NET Framework.
Works on Windows, Linux and macOS.
Build advanced dashbaords and reports without sacrificing the performance.
“Developers say that they never had this powerfullness before.”
var visitsTimeline = db.Query("Visits")
.Join("Users", "Users.Id", "Visits.UserId")
.WhereBetween("2026-02-08", "2026-05-08")
.GroupBy("Users.Id", "Visits.Date")
.Select("Users.Id", "Visits.Date")
.SelectRaw("count(1) as [Count]")
.Having("Count", ">", 5)
.Get();
var activity = db.Query("Activities")
.Join("Users", "Users.Id", "Visits.UserId")
.OrderByDesc("Date")
.Union(new Query("Alerts"))
.OrderBy("Date")
.Get();
SqlKata make it easy to build Web API interfaces, you can use it to build REST or GRAPHQL interfaces.
Powered with some useful methods like Include, ForPage and Paginate.
Resetting the counter without physically cleaning or replacing the waste ink pad can lead to ink overflow, damaging your printer and desk. Always check the physical pad first. For the L5290, the waste ink pad is accessible via the bottom panel (users can replace it or clean it with isopropyl alcohol).
Click the “Select” button. A pop-up window will list connected Epson printers. Choose “Epson L5290 Series”. If your model doesn’t appear, the resetter is not verified for your region’s variant (e.g., L5290 vs L5290A).
Based on community and developer support, here are the most common verified routes for the L5290:
Epson L5290 Resetter , also known as the Adjustment Program , is a specialized utility used to fix the "Service Required" error (Error E-11) caused by a full waste ink pad counter. When this counter reaches 100% of its factory limit, the printer will stop operating and display blinking red lights. Verified Reset Methods resetter epson l5290 verified
Ensure the L5290 is powered on and physically connected before launching the tool. Step-by-Step Guide to Reset Epson L5290
A means the software has been tested, confirmed to work on the Epson L5290 (with its specific firmware versions), and is free from malicious code. Verified tools often come from established third-party维修 (repair) communities or authorized service centers.
There are two main types of verified software for the Epson L5290: How to Reset Epson L5290 with Resetter Click the “Select” button
This report details the functionality, necessity, and operational procedures of the "Resetter" software used for the Epson L5290 EcoTank printer. The Epson L5290, like all Epson inkjet printers, utilizes an internal waste ink pad counter to prevent overflow of waste ink. Once this counter reaches its predefined limit, the printer ceases operation, displaying an error message (often "Service Required" or alternating red lights). The "Resetter" (officially known as the Adjustment Program) is a software utility used to reset this counter to zero, restoring the printer to working condition.
The user, had a simple note: “Ignore the fake tools. This one is verified. No virus. No paywall. Just reset.”
During printing cycles—specifically during head cleaning and initialisation—the printer ejects a small amount of ink into a waste ink pad located at the base of the machine to prevent the nozzles from clogging. If your model doesn’t appear, the resetter is
The printer whirred to life, spat out the half-finished conclusion page, and went silent. Maria opened the lid. The ink pads were still soaked, still physically filthy—but the printer no longer cared. The resetter had lied to it, beautifully and surgically.
Once the reset is successful, a prompt will appear saying "Please turn off the printer." Turn off the Epson L5290. Click on the computer and wait 10 seconds. Turn the printer back on.
This specific code on your display indicates the ink pad needs service.