Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions docs/_assets/icon/csharp-logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
59 changes: 59 additions & 0 deletions docs/_assets/icon/fsharp-logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions docs/_assets/icon/visualbasic-logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions docs/_include/links.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

[ADBC]: https://arrow.apache.org/docs/format/ADBC.html
[Admin UI]: inv:crate-admin-ui:*:label#index
[ADO.NET Overview]: https://learn.microsoft.com/en-us/dotnet/framework/data/adonet/ado-net-overview
[Amazon DynamoDB Streams]: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html
[Amazon Kinesis Data Streams]: https://docs.aws.amazon.com/streams/latest/dev/introduction.html
[Apache Airflow]: https://airflow.apache.org/
Expand All @@ -13,6 +14,7 @@
[BM25]: https://en.wikipedia.org/wiki/Okapi_BM25
[cloud-datashader-colab]: https://colab.research.google.com/github/crate/cratedb-examples/blob/amo/cloud-datashader/topic/timeseries/explore/cloud-datashader.ipynb
[cloud-datashader-github]: https://github.com/crate/cratedb-examples/blob/amo/cloud-datashader/topic/timeseries/explore/cloud-datashader.ipynb
[Connection Strings in ADO.NET]: https://learn.microsoft.com/en-us/dotnet/framework/data/adonet/connection-strings
[CTE]: inv:crate-reference#sql_dql_with
[CrateDB BLOB support]: inv:crate-reference:*:label#blob_support
[CrateDB Cloud]: inv:cloud:*:label#index
Expand Down
108 changes: 108 additions & 0 deletions docs/connect/csharp/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
:::{include} /_include/links.md
:::

(connect-csharp)=
# C#

:::{div} .float-right .text-right
[![C# Npgsql](https://github.com/crate/cratedb-examples/actions/workflows/lang-csharp-npgsql.yml/badge.svg)](https://github.com/crate/cratedb-examples/actions/workflows/lang-csharp-npgsql.yml)
[![C# EF Core](https://github.com/crate/cratedb-examples/actions/workflows/lang-csharp-efcore.yml/badge.svg)](https://github.com/crate/cratedb-examples/actions/workflows/lang-csharp-efcore.yml)
:::
:::{div} .clearfix
:::

:::{div} sd-text-muted
Connect to CrateDB from C# .NET applications.
:::

:::{rubric} About
:::

[Npgsql] is an open source ADO\.NET Data Provider for PostgreSQL, for programs
written in C#, F#, or Visual Basic.

:::{rubric} Synopsis
:::

`example.csproj`
```xml
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net$(NETCoreAppMaximumVersion)</TargetFramework>
<GenerateProgramFile>false</GenerateProgramFile>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Npgsql" Version="10.0.0-rc.1" />
</ItemGroup>

</Project>
```
`example.cs`
```c#
using Npgsql;
using System;

// Connect to database.
var connString = "Host=localhost;Port=5432;Username=crate;Password=crate;Database=doc;Sslmode=disable";
var dataSourceBuilder = new NpgsqlDataSourceBuilder(connString);
var dataSource = dataSourceBuilder.Build();
var conn = dataSource.OpenConnection();

// Invoke basic query.
var cmd = new NpgsqlCommand("SELECT mountain, height FROM sys.summits ORDER BY height DESC LIMIT 3", conn);

// Display results.
var reader = cmd.ExecuteReader();
while (reader.Read())
Console.WriteLine($"{reader.GetString(0)}: {reader.GetInt32(1)}");
```

:::{include} ../_cratedb.md
:::
```shell
export DOTNET_CLI_TELEMETRY_OPTOUT=true
dotnet run
```

:::{rubric} CrateDB Cloud
:::

For connecting to CrateDB Cloud, use `Sslmode=require`, and
replace hostname, username, and password with values matching
your environment.
```c#
var connString = "Host=testcluster.cratedb.net;Port=5432;Username=admin;Password=password;Database=doc;Sslmode=require";
```

## Examples

:::{card}
:link: https://github.com/crate/cratedb-examples/tree/main/by-language/csharp-npgsql
:link-type: url
{material-regular}`play_arrow;2em`
Connect to CrateDB and CrateDB Cloud using .NET (C#)
+++
Demonstrates a basic example using Npgsql with CrateDB.
:::

:::{card}
:link: https://github.com/crate/cratedb-examples/tree/main/by-language/csharp-efcore
:link-type: url
{material-regular}`play_arrow;2em`
Connect to CrateDB and CrateDB Cloud using the Npgsql Entity Framework
+++
Demonstrates the Npgsql Entity Framework Core provider for PostgreSQL with CrateDB.
:::

## See also

:::{div}
- [Connection Strings in ADO.NET]
- [ADO.NET Overview]
:::


[Npgsql]: https://www.npgsql.org/
104 changes: 104 additions & 0 deletions docs/connect/fsharp/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
:::{include} /_include/links.md
:::

(connect-fsharp)=
# F#

:::{div} sd-text-muted
Connect to CrateDB from F# .NET applications.
:::

:::{rubric} About
:::

[Npgsql] is an open source ADO\.NET Data Provider for PostgreSQL, for programs
written in C#, F#, or Visual Basic.
[Npgsql.FSharp] is a thin F#-friendly layer around it.

:::{rubric} Synopsis
:::

`example.fsproj`
```xml
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net$(NETCoreAppMaximumVersion)</TargetFramework>
<GenerateProgramFile>false</GenerateProgramFile>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Npgsql" Version="10.0.0-rc.1" />
<PackageReference Include="Npgsql.FSharp" Version="8.0.0" />
</ItemGroup>

<ItemGroup>
<Compile Include="example.fs" />
</ItemGroup>

</Project>
```
`example.fs`
```f#
open Npgsql.FSharp
open System

let connString = "postgres://crate:crate@localhost:5432/doc?sslmode=disable";

type Record = {
mountain: string
height: int
}

[<EntryPoint>]
let main args =
let results = ResizeArray()

// Connect to database.
connString
|> Sql.connect

// Invoke basic query.
|> Sql.query "SELECT mountain, height FROM sys.summits ORDER BY height DESC LIMIT 3"
|> Sql.execute (fun read ->
{
mountain = read.text "mountain"
height = read.int "height"
})
|> results.Add

// Display results.
printfn "%A" results

// Exit program successfully.
0
```

:::{include} ../_cratedb.md
:::
```shell
export DOTNET_CLI_TELEMETRY_OPTOUT=true
dotnet run
```

:::{rubric} CrateDB Cloud
:::

For connecting to CrateDB Cloud, use `Sslmode=require`, and
replace hostname, username, and password with values matching
your environment.
```f#
let connString = "postgres://admin:[email protected]:5432/doc?sslmode=require";
```

## See also

:::{div}
- [Connection Strings in ADO.NET]
- [ADO.NET Overview]
:::


[Npgsql]: https://www.npgsql.org/
[Npgsql.FSharp]: https://github.com/Zaid-Ajaj/Npgsql.FSharp
45 changes: 45 additions & 0 deletions docs/connect/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,34 @@ CrateDB drivers and adapters for supported programming languages, frameworks, an
:gutter: 3
:padding: 0

::::{grid-item-card} C#
:link: connect-csharp
:link-type: ref
:link-alt: Connect to CrateDB using C#
:padding: 3
:text-align: center
:class-card: sd-pt-3
:class-body: sd-fs-1
:class-title: sd-fs-6
```{image} /_assets/icon/csharp-logo.svg
:height: 50px
```
::::

::::{grid-item-card} F#
:link: connect-fsharp
:link-type: ref
:link-alt: Connect to CrateDB using F#
:padding: 3
:text-align: center
:class-card: sd-pt-3
:class-body: sd-fs-1
:class-title: sd-fs-6
```{image} /_assets/icon/fsharp-logo.svg
:height: 50px
```
::::

::::{grid-item-card} Java
:link: connect-java
:link-type: ref
Expand Down Expand Up @@ -108,6 +136,20 @@ CrateDB drivers and adapters for supported programming languages, frameworks, an

::::

::::{grid-item-card} Visual Basic
:link: connect-visualbasic
:link-type: ref
:link-alt: Connect to CrateDB using Visual Basic
:padding: 3
:text-align: center
:class-card: sd-pt-3
:class-body: sd-fs-1
:class-title: sd-fs-6
```{image} /_assets/icon/visualbasic-logo.svg
:height: 50px
```
::::

:::::


Expand Down Expand Up @@ -176,11 +218,14 @@ application
:maxdepth: 1
:hidden:

csharp/index
fsharp/index
java
javascript
php
python
ruby
visualbasic/index
natural
All drivers <drivers>
```
Expand Down
Loading