Skip to main content

使用 C# 连接器建立连接

创建项目

dotnet new console -o example

Add C# TDengine Driver class lib

cd example
vim example.csproj

增加下面的 ItemGroup 和 Task 配置到您的工程文件中。

<ItemGroup>
<PackageReference Include="TDengine.Connector" Version="3.0.*" GeneratePathProperty="true" />
</ItemGroup>
<Target Name="copyDLLDependency" BeforeTargets="BeforeBuild">
<ItemGroup>
<DepDLLFiles Include="$(PkgTDengine_Connector)\runtimes\**\*.*" />
</ItemGroup>
<Copy SourceFiles="@(DepDLLFiles)" DestinationFolder="$(OutDir)" />
</Target>
dotnet add package TDengine.Connector

Config

在您的终端里面执行下面的命令设置 TDengine Cloud 令牌为环境变量:

export TDENGINE_CLOUD_DSN="<DSN>"
IMPORTANT

替换 <DSN> 为 真实的值,格式应该是 https(<cloud_endpoint>)/?token=<token>

获取真实的 DSN 的值,请登录TDengine Cloud 后点击左边的”编程“菜单,然后选择”C#“。

建立连接

<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net5.0</TargetFramework>
<Nullable>enable</Nullable>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="TDengine.Connector" Version="3.0.*" GeneratePathProperty="true" />
</ItemGroup>
<Target Name="copyDLLDependency" BeforeTargets="BeforeBuild">
<ItemGroup>
<DepDLLFiles Include="$(PkgTDengine_Connector)\runtimes\**\*.*" />
</ItemGroup>
<Copy SourceFiles="@(DepDLLFiles)" DestinationFolder="$(OutDir)" />
</Target>

</Project>

查看源码

using System;
using TDengineWS.Impl;

namespace Cloud.Examples
{
public class ConnectExample
{
static void Main(string[] args)
{
string dsn = Environment.GetEnvironmentVariable("TDENGINE_CLOUD_DSN");
Connect(dsn);
}

public static void Connect(string dsn)
{
// get connect
IntPtr conn = LibTaosWS.WSConnectWithDSN(dsn);
if (conn == IntPtr.Zero)
{
throw new Exception($"get connection failed,reason:{LibTaosWS.WSErrorStr(conn)},code:{LibTaosWS.WSErrorNo(conn)}");
}
else
{
Console.WriteLine("Establish connect success.");
}

// do something ...

// close connect
LibTaosWS.WSClose(conn);

}
}
}

查看源码

客户端连接建立连接以后,想了解更多写入数据和查询数据的内容,请参考 <https://docs.taosdata.com/cloud/programming/insert/> and <https://docs.taosdata.com/cloud/programming/query/>.

想知道更多通过 REST 接口写入数据的详情,请参考REST 接口.