{"id":37051947,"url":"https://github.com/besogenebashvili/sqlpipe","last_synced_at":"2026-01-14T06:00:04.492Z","repository":{"id":116418015,"uuid":"563453616","full_name":"BesoGenebashvili/SqlPipe","owner":"BesoGenebashvili","description":"Simple SQL builder DSL for .NET","archived":false,"fork":false,"pushed_at":"2023-11-19T02:50:05.000Z","size":72,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-24T03:19:41.013Z","etag":null,"topics":["database","dotnet","dsl","nuget","nuget-package","sql","sql-builder","sql-dsl","sql-execution","sql-server"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BesoGenebashvili.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2022-11-08T16:38:42.000Z","updated_at":"2025-08-05T20:04:57.000Z","dependencies_parsed_at":"2023-07-20T02:46:29.575Z","dependency_job_id":null,"html_url":"https://github.com/BesoGenebashvili/SqlPipe","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/BesoGenebashvili/SqlPipe","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BesoGenebashvili%2FSqlPipe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BesoGenebashvili%2FSqlPipe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BesoGenebashvili%2FSqlPipe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BesoGenebashvili%2FSqlPipe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BesoGenebashvili","download_url":"https://codeload.github.com/BesoGenebashvili/SqlPipe/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BesoGenebashvili%2FSqlPipe/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28412180,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T05:26:33.345Z","status":"ssl_error","status_checked_at":"2026-01-14T05:21:57.251Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","dotnet","dsl","nuget","nuget-package","sql","sql-builder","sql-dsl","sql-execution","sql-server"],"created_at":"2026-01-14T06:00:03.616Z","updated_at":"2026-01-14T06:00:04.483Z","avatar_url":"https://github.com/BesoGenebashvili.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SqlPipe\nSqlPipe is a C# DSL that simplifies SQL tasks while safeguarding against writing faulty queries, ensuring reliable database operations for executing, inserting, updating, and retrieving data\n\n[![Downloads](https://badgen.net/nuget/dt/SqlPipe)](https://www.nuget.org/packages/SqlPipe/)\n[![NuGet](https://badgen.net/nuget/v/SqlPipe)](https://www.nuget.org/packages/SqlPipe/)\n[![License](https://badgen.net/github/license/BesoGenebashvili/SqlPipe)](https://github.com/BesoGenebashvili/SqlPipe/blob/main/LICENSE.md)\n\n\u003cimg src=\"https://user-images.githubusercontent.com/52665934/207603933-864b0d4b-5c8d-41a0-afc9-5ecb49e011f0.png\" width=\"300\"\u003e\n\n### SQL Query Generation Example\n\n```csharp\nvar sql = SELECT()\n              .TOP(10)\n              .FROM(\"dbo.CLIENTS c\")\n              .INNER_JOIN(\"dbo.ORDERS o\")\n              .ON(\"c.ID = o.CLIENT_ID\")\n              .WHERE(\"c.IS_ACTIVE = @isActive\")\n              .ORDER_BY(\"c.ID\")\n              .ORDER_BY_DESC(\"o.DATE\")\n              .ToPrettySql();\n```\n\n#### Generated SQL Query:\n\n```sql\nSELECT TOP (10) * \nFROM dbo.CLIENTS c \nINNER JOIN dbo.ORDERS o \nON c.ID = o.CLIENT_ID \nWHERE c.IS_ACTIVE = @isActive \nORDER BY c.ID, o.DATE DESC;\n```\n\n### Getting Started\nTo use SqlPipe, import the necessary namespaces and create an executor to interact with the database:\n\n```csharp\nusing SqlPipe;\nusing static SqlPipe.Extensions;\n\nvar executor = new Executor(\"data source=_;initial catalog=SqlPipeDocs;trusted_connection=true\");\n```\n\n### Creating a Table\n\n```csharp\nawait executor.TextAsync(\n    \"\"\" \n    CREATE TABLE dbo.CLIENTS(\n        ID         INT          NOT NULL IDENTITY(1, 1) PRIMARY KEY,\n        FIRST_NAME VARCHAR(100) NOT NULL,\n        LAST_NAME  VARCHAR(100) NOT NULL,\n        AGE        TINYINT      NULL,\n        IS_ACTIVE  BIT          NOT NULL);\n    \"\"\");\n```\n\n### Inserting Data\n\n```csharp\nvar clientIdOutParam = SqlOutParam(\"@IDENTITY\", SqlDbType.Int);\nvar inserted = await executor.INSERT_INTO(\n    \"dbo.CLIENTS\",\n    SqlParams(\n        SqlParam(\"@firstName\", \"Beso\", \"FIRST_NAME\"),\n        SqlParam(\"@lastName\", \"Genebashvili\", \"LAST_NAME\"),\n        SqlParam(\"@age\", 24, \"AGE\"),\n        SqlParam(\"@isActive\", true, \"IS_ACTIVE\"),\n        clientIdOutParam));\n\n// Check if insertion was successful\nif (inserted) Console.WriteLine($\"Inserted client `{clientIdOutParam.Value}`\");\nelse Console.WriteLine(\"Insert was unsuccessful\");\n```\n\n### Updating Data\n\n```csharp\nvar updated = await executor.UPDATE(\n    \"dbo.CLIENTS\",\n    SqlParams(\n        SqlParam(\"@id\", 1),\n        SqlParam(\"@age\", 15, \"AGE\")),\n    \"Id = @id\");\n\n// Check if update was successful\nif (updated) Console.WriteLine($\"Updated client `{1}`\");\nelse Console.WriteLine(\"Update was unsuccessful\");\n```\n\n### Querying Single Record\n\n```csharp\nvar querySingleSql = SELECT(\"ID as Id\",\n                            \"FIRST_NAME as FirstName\",\n                            \"LAST_NAME as LastName\")\n                        .FROM(\"dbo.CLIENTS\")\n                        .WHERE(\"Id = @id\")\n                        .ToSql();\n\nvar singleRecord = await executor.QuerySingleAsync(\n    querySingleSql,\n    SqlParams(SqlParam(\"id\", 1)),\n    r =\u003e new\n    {\n        Id = r.GetValueAs\u003cint\u003e(\"Id\"),\n        FirstName = r.GetValueAs\u003cstring\u003e(\"FirstName\"),\n        LastName = r.GetValueAs\u003cstring\u003e(\"LastName\")\n    });\n\nConsole.WriteLine(singleRecord);\n```\n\n### Querying a List\n\n```csharp\nvar queryListSql = SELECT(\"*\", \"FIRST_NAME + ' ' + LAST_NAME as FULL_NAME\")\n                       .TOP(10)\n                       .FROM(\"dbo.CLIENTS\")\n                       .WHERE(\"IS_ACTIVE = @isActive\")\n                       .ORDER_BY(\"ID\")\n                       .ORDER_BY_DESC(\"AGE\")\n                       .ORDER_BY_ASC(\"FULL_NAME\")\n                       .ToPrettySql();\n\nvar list = await executor.QueryAsync(\n    queryListSql,\n    SqlParams(SqlParam(\"isActive\", true)),\n    r =\u003e new\n    {\n        Id = r.GetValueAs\u003cint\u003e(\"ID\"),\n        FullName = r.GetValueAs\u003cstring\u003e(\"FULL_NAME\"),\n        Age = r.GetValueAsNullable\u003cbyte\u003e(\"AGE\"),\n        IsActive = r.GetValueAs\u003cbool\u003e(\"IS_ACTIVE\")\n    });\n\nConsole.WriteLine(string.Join('\\n', list));\n```\n\n## Installation\n\n```\nInstall-Package SqlPipe\n```\n\n```\ndotnet add package SqlPipe\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbesogenebashvili%2Fsqlpipe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbesogenebashvili%2Fsqlpipe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbesogenebashvili%2Fsqlpipe/lists"}