当前位置: 首页 > news >正文

TDengine C# 语言连接器入门指南

本指南汇总官网文档中 C# 初学者应该掌握的基础知识,覆盖安装、连接方式、基本读写、异常处理与数据类型映射。示例代码基于 .NET 6.0。

1. 准备环境

  • 确保 TDengine TSDB 服务端可访问。
  • 原生连接使用 serverPort(默认 6030)。
  • WebSocket 连接需要 taosAdapter,默认端口 6041。

2. 安装连接器

在项目文件中添加 NuGet 依赖:

<ProjectSdk="Microsoft.NET.Sdk"><PropertyGroup><OutputType>Exe</OutputType><TargetFramework>net6.0</TargetFramework><ImplicitUsings>enable</ImplicitUsings><Nullable>enable</Nullable></PropertyGroup><ItemGroup><PackageReferenceInclude="TDengine.Connector"Version="3.1.0"/></ItemGroup></Project>

或使用命令行:

+dotnetaddpackage TDengine.Connector

:::note
以下示例代码基于 .NET 6.0;如使用其他版本,请根据目标框架做适配。
:::

3. 选择连接方式与连接字符串

连接字符串采用key=value形式,参数之间用分号分隔。

  • 原生连接示例:
host=127.0.0.1;port=6030;username=root;password=taosdata;protocol=Native
  • WebSocket 连接示例:
protocol=WebSocket;host=127.0.0.1;port=6041;useSSL=false;username=root;password=taosdata

常用参数速览

  • host:TDengine 实例地址。
  • port:端口(原生 6030 / WebSocket 6041)。
  • username/password:认证信息。
  • protocolNativeWebSocket(默认 Native)。
  • db:连接数据库。
  • timezone:查询结果集解析时区。
  • connectionTimezone:连接级别时区(3.1.8+,仅 .NET 6+,与timezone互斥)。

更多参数与时区规则请参考 C# 连接器参考文档的“参数规范/时区说明”。

4. 最小连接示例

{{#include docs/examples/csharp/connect/Program.cs:main}}
{{#include docs/examples/csharp/wsConnect/Program.cs:main}}

5. 建库建表、写入与查询

下面示例展示基础的建库建表、插入与查询流程:

usingSystem;usingSystem.Text;usingTDengine.Driver;usingTDengine.Driver.Client;varbuilder=newConnectionStringBuilder("host=localhost;port=6030;username=root;password=taosdata");using(varclient=DbDriver.Open(builder)){client.Exec("CREATE DATABASE IF NOT EXISTS power");client.Exec("CREATE STABLE IF NOT EXISTS power.meters (ts TIMESTAMP, current FLOAT, voltage INT, phase FLOAT) TAGS (groupId INT, location BINARY(24))");client.Exec("INSERT INTO power.d1001 USING power.meters TAGS(2,'California.SanFrancisco') VALUES "+"(NOW + 1a, 10.30000, 219, 0.31000) (NOW + 2a, 12.60000, 218, 0.33000)");using(varrows=client.Query("SELECT ts, current, location FROM power.meters LIMIT 5")){while(rows.Read()){varts=(DateTime)rows.GetValue(0);varcurrent=(float)rows.GetValue(1);varlocation=Encoding.UTF8.GetString((byte[])rows.GetValue(2));Console.WriteLine($"{ts:yyyy-MM-dd HH:mm:ss.fff},{current},{location}");}}}

更完整的插入/查询示例可参考:

  • docs/examples/csharp/sqlInsert/Program.cs
  • docs/examples/csharp/query/Program.cs

6. 异常处理与错误码

TDengine.Connector会抛出TDengineError,包含错误码与错误信息。建议统一捕获并输出CodeError字段。TDengine 其他模块的错误码参见 错误码。

7. 数据类型映射(必知)

TDengine TSDB DataTypeC# Type
TIMESTAMPDateTime
TINYINTsbyte
SMALLINTshort
INTint
BIGINTlong
TINYINT UNSIGNEDbyte
SMALLINT UNSIGNEDushort
INT UNSIGNEDuint
BIGINT UNSIGNEDulong
FLOATfloat
DOUBLEdouble
BOOLbool
BINARYbyte[]
NCHARstring
JSONbyte[]
VARBINARYbyte[]
GEOMETRYbyte[]
DECIMALdecimal

注意

  • JSON 类型仅在 tag 中支持。
  • GEOMETRY 为 WKB 小端字节序。
  • DECIMAL 在 C# 使用decimal;当精度超出decimal范围时需用GetString获取。

8. 下一步建议

  • 了解更多连接参数与时区行为:见 C# 连接器参考文档“参数规范/时区说明”。
  • 查询返回类型:见“数据类型映射”。
  • 继续学习 ADO.NET 标准接口、无模式写入、订阅与 stmt:见 C# 连接器参考文档“API 参考”。

关于TDengine

TDengine 专为物联网IoT平台、工业大数据平台设计。其中,TDengine TSDB 是一款高性能、分布式的时序数据库(Time Series Database),同时它还带有内建的缓存、流式计算、数据订阅等系统功能;TDengine IDMP 是一款AI原生工业数据管理平台,它通过树状层次结构建立数据目录,对数据进行标准化、情景化,并通过 AI 提供实时分析、可视化、事件管理与报警等功能。

http://www.jsqmd.com/news/259702/

相关文章:

  • 基于STM32的智能宠物喂食系统设计与实现
  • 解码WIFI模块与IoT云平台
  • 大数据学习(1)
  • 【小记】解决校园网中不同单播互通子网间 LocalSend 的发现问题
  • 【计算机毕业设计案例】基于springboot的城市化自修室座位预约管理系统(程序+文档+讲解+定制)
  • Springboot校园二手交易平台x9zo8(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • PCM缓冲区
  • 即插即用系列(代码实践)专栏介绍
  • 实习 - tableau连接本地数据库
  • 【小记】解决 LAN 中不同单播互通子网间 LocalSend 的发现问题
  • 导师严选2026最新!专科生毕业论文一键生成工具TOP9测评
  • Switch520游戏下载站 - 专业的switch游戏下载|ns免费游戏资源下载网站
  • 【课程设计/毕业设计】基于Java+SpringBoot城市化自修室管理系统基于springboot的城市化自修室管理系统【附源码、数据库、万字文档】
  • 【毕业设计】基于springboot的城市化自修室管理系统(源码+文档+远程调试,全bao定制等)
  • 轮廓线DP - 学习笔记
  • Java毕设项目:基于springboot的城市化自修室管理系统(源码+文档,讲解、调试运行,定制等)
  • GESP认证C++编程真题解析 | 202409 三级
  • OTG数据与充电交互解决方案专家乐得瑞
  • 题解:P14270 ABC253Ex 加强版
  • LDR6021Q实现充电加数据传输一个Type-c接口实现多功能同时进行
  • Git 入门:给你的代码装上“时光机”
  • GoldenGate 19C的静默安装及打补丁 - 详解
  • 数字脉动:基于 Flutter × OpenHarmony 的图书馆管理系统统计信息模块构建实战
  • 【课程设计/毕业设计】基于springboot的学车驾校线上学习课程安排管理系统的设计与实现【附源码、数据库、万字文档】
  • 【毕业设计】基于Java的博客系统基于springboot的博客系统(源码+文档+远程调试,全bao定制等)
  • Java毕设项目:基于springboot的学车驾校线上学习管理系统的设计与实现(源码+文档,讲解、调试运行,定制等)
  • Java毕设项目:基于vue的博客系统基于springboot的博客系统(源码+文档,讲解、调试运行,定制等)
  • Java计算机毕设之基于springboot的驾校线上报名考试练车管理系统基于springboot的学车驾校线上学习管理系统的设计与实现(完整前后端代码+说明文档+LW,调试定制等)
  • 【毕业设计】基于springboot的学车驾校线上理论学习刷题管理系统的设计与实现(源码+文档+远程调试,全bao定制等)
  • Java计算机毕设之基于SpringBoot实现的社区博客管理系统基于springboot的博客系统(完整前后端代码+说明文档+LW,调试定制等)