QueryDB is a flexible database query framework designed to simplify querying and executing transactions across multiple database systems.
The package is available and can be downloaded using nuget.org package manager.
- Package Name - QueryDB.
Built on .NET Standard 2.0 - ( Supported Versions )
- 🔍 Efficient data retrieval using query and command execution.
- ➕ Execute scalar queries for single-value results.
- ✏️ Execute non-query commands (e.g.
INSERT,UPDATE,DELETE). - 🔄 Perform multi-command transactions while maintaining atomicity.
- 🔁 Support for both Synchronous and Asynchronous operations.
Setup
DBContextwith the database of your choice :vardbContext=newDBContext(DB.<Database Type>,<Connection String>);
Execute
DBContextcommands :Execute DBContext Commands Synchronously
varresult=dbContext.FetchData(<Sql Statement>);
varresult=dbContext.FetchData<T>(<Sql Statement>);
varresult=dbContext.ExecuteScalar(<Sql Statement>);
varresult=dbContext.ExecuteScalar<T>(<Sql Statement>);
varresult=dbContext.ExecuteCommand(<Sql Statement>);
varresult=dbContext.ExecuteTransaction(<List of Sql Statements>);
Execute DBContext Commands Asynchronously
varresult=dbContext.FetchDataAsync(<Sql Statement>);
varresult=dbContext.FetchDataAsync<T>(<Sql Statement>);
varresult=dbContext.ExecuteScalarAsync(<Sql Statement>);
varresult=dbContext.ExecuteScalarAsync<T>(<Sql Statement>);
varresult=dbContext.ExecuteCommandAsync(<Sql Statement>);
varresult=dbContext.ExecuteTransactionAsync(<List of Sql Statements>);
Data Retrieval
publicclassOrders{publicstringAgent_Code{get;set;}publicstringAgent{get;set;}publicstringAgent_Name{get;set;}publicstringAgent_Location{get;set;}publicstringCust_Code{get;set;}publicstringCustomer{get;set;}publicstringCust_Name{get;set;}publicstringCustomer_Location{get;set;}publicdecimalOrd_Num{get;set;}publicdecimalOrd_Amount{get;set;}publicdecimalAdvance_Amount{get;set;}publicstringOrd_Description{get;set;}}varsql=@"SELECT A.Agent_Code, A.Agent_Name, C.Cust_Code, C.Cust_Name, O.Ord_Num, O.Ord_Amount, O.Advance_Amount, O.Ord_Date, O.Ord_Description FROM Agents A INNER JOIN Customer C ON C.Agent_Code = A.Agent_Code INNER JOIN Orders O ON O.Cust_Code = C.Cust_Code AND O.Agent_Code = A.Agent_Code";vardata=newDBContext(DB.<Database Type>,<Connection String>).FetchData<Orders>(selectSql);varagent=data.FirstOrDefault(X =>X.Agent_Name=="Foo");Transaction
// Create, Insert & Updatevarstatements=newList<string>{"CREATE TABLE Employee (EmployeeID INT PRIMARY KEY, FirstName NVARCHAR(50), LastName NVARCHAR(50))","INSERT INTO Employee VALUES ('E01', 'John', 'Wick')","UPDATE Employee SET FirstName = 'Jack' LastName = 'Reacher' WHERE EmployeeID = 'E01'"};vardbContext=newDBContext(DB.MSSQL,MSSQLConnectionString);varresult=dbContext.ExecuteTransaction(statements);