Skip to content

Repository files navigation

⚡QueryDB

QueryDB solution in .NET.

Build / TestcodecovQuality Gate StatusmaintainerLicense: MITNuGet

Security RatingReliability RatingMaintainability Rating

QueryDB is a flexible database query framework designed to simplify querying and executing transactions across multiple database systems.

🌐 Supported Databases

📥 Download

The package is available and can be downloaded using nuget.org package manager.

🎯 .NET Supported Versions

Built on .NET Standard 2.0 - ( Supported Versions )

✨ Key Features

  • 🔍 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.

🚀 Getting Started

  • Setup DBContext with the database of your choice :

    vardbContext=newDBContext(DB.<Database Type>,<Connection String>);
  • Execute DBContext commands :

    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>);

🧠 Examples

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);

Releases

Used by

Contributors

Languages