news 2026/4/20 14:22:40

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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 提供实时分析、可视化、事件管理与报警等功能。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/20 14:20:36

Java毕设项目推荐-基于springboot的学车超能驾校线上学习管理系统学车预约、考试信息、考试预约、考试成绩、课时充值的设计与实现【附源码+文档,调试定制服务】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/20 14:22:33

day137—链表—删除链表中的结点(LeetCode-237)

题目描述有一个单链表的 head&#xff0c;我们想删除它其中的一个节点 node。给你一个需要删除的节点 node 。你将 无法访问 第一个节点 head。链表的所有值都是 唯一的&#xff0c;并且保证给定的节点 node 不是链表中的最后一个节点。删除给定的节点。注意&#xff0c;删除节…

作者头像 李华
网站建设 2026/4/19 15:51:50

Java毕设选题推荐:基于vue的博客分享发布系统基于springboot的博客系统【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/20 14:21:37

【计算机毕业设计案例】基于python-CNN卷神经网络训练识别手势方向

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/15 22:26:56

ASCOMP PC Internals Pro(系统分析与硬盘监控)

链接&#xff1a;https://pan.quark.cn/s/b7f174263e7cASCOMP PC Internals Pro是一款专业级 Windows 系统分析与硬盘监控工具。该软件适用于个人用户、IT 专业人士以及注重系统透明度、早期故障检测和数据安全的零售商。通过一键操作&#xff0c;用户即可获取处理器、内存、显…

作者头像 李华
网站建设 2026/4/17 18:27:18

MySQL的一张表使用InnoDB引擎,创建时如果忘记给这张表添加主键,请问这边表有没有聚簇索引?如果有的话聚簇索引是什么样的?

聚簇索引创建的原则&#xff1a;主键存在&#xff1a;如果表中定义了主键&#xff0c;主键即为聚簇索引。没有主键时&#xff1a;如果没有定义主键&#xff0c;InnoDB 会选择第一个唯一且非空的索引作为聚簇索引。既没有主键也没有唯一索引时&#xff1a;如果既没有主键也没有合…

作者头像 李华