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.mzph.cn/news/1175079.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YUV缓冲区

“YUV 缓冲区”是指在图像或视频处理中用于存储 YUV 格式像素数据的一段内存区域。YUV 是一种广泛用于视频采集、编码、传输和显示的颜色编码系统,与常见的 RGB 不同,它将亮度(Luma, Y)和色度(Chroma, U/V)分离开…

Java毕设项目推荐-基于Springboot和Vue的城市化自修室管理系统springboot的城市化自修室管理系统【附源码+文档,调试定制服务】

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

java常用容器源码手撕实现

java常用容器源码手撕&#xff08;持续更新&#xff09; ArrayList&#xff1a; 动态数组&#xff0c;扩容&#xff0c;迭代器 package tech.insight;import java.util.Iterator; import java.util.NoSuchElementException; import java.util.Objects;/*** author gongxuanzhan…

大数据学习(1)

我完成了大数据学习的一部分,包括提示工程之类的,对于豆包和deepseek网页版为啥回复答案如此相似有了答案,并跟着教程完成了一个简陋的智能体,(虽说我觉得它现在只是一个智障体),它能够进行读写文件,还有从网上…

【小记】解决校园网中不同单播互通子网间 LocalSend 的发现问题

这回来折腾一下怎么在多播隔离、单播允许的局域网(比如校园网)子网之间实现 LocalSend 客户端的互相发现。各位好久不见~下半年又是忙论文又是忙项目的,实在是没什么时间更新笔记了。趁着今天有点空闲,咱来写写最近…

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

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

【计算机毕业设计案例】基于springboot的学车驾校线上学习理论学习考试管理系统的设计与实现(程序+文档+讲解+定制)

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

Springboot基于双减政策的家校互动管理系统8e613(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

系统程序文件列表项目功能&#xff1a;家长,教师,学生信息,班级,班务活动,班级公告,校园资讯,计划安排,延时服务,参与服务,学生成绩,家长反馈,家长警告,教师警告,资讯类型,学校基础信息开题报告内容SpringBoot基于“双减”政策的家校互动管理系统开题报告一、研究背景与意义研究…

Java毕设选题推荐:基于springboot+vue的智慧城市化自修室管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】

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

Springboot校园二手交易平台x9zo8(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

系统程序文件列表项目功能&#xff1a;商品分类,出售专区,用户,求购专区开题报告内容SpringBoot校园二手交易平台开题报告一、选题背景与意义&#xff08;一&#xff09;选题背景在大学校园里&#xff0c;学生群体因学业周期更替、兴趣爱好变化、生活需求调整等因素&#xff0c…

【计算机毕业设计案例】基于springboot的城市化自修室座位预约管理系统(程序+文档+讲解+定制)

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

PCM缓冲区

“PCM 缓冲区”通常是指在数字音频处理中用于临时存储 脉冲编码调制(Pulse Code Modulation, PCM)数据的一段内存区域。 PCM 是最常见、最基础的未压缩数字音频格式,广泛应用于音频播放、录音、通信和音视频编解码等…

即插即用系列(代码实践)专栏介绍

把论文&#xff0c;真正变成你能直接用的代码 写在前面&#xff1a; 这篇文章不是为了“卖课”&#xff0c;而是想认真解释一件事—— 为什么我会花大量时间&#xff0c;把顶会论文拆成即插即用的代码模块。 如果你正好也在做科研、写论文、改网络结构&#xff0c;希望这篇文章…

实习 - tableau连接本地数据库

tableau 连接本地数据库需要下载对应的驱动器 ODBC, ODBC 驱动的安装路径和 MariaDB / MySQL 服务器的路径无关:ODBC 驱动 负责在 Tableau、Excel、Python 等工具和数据库之间建立通信; ODBC 驱动 不依赖于 服务器 的…

【小记】解决 LAN 中不同单播互通子网间 LocalSend 的发现问题

这回来折腾一下怎么在多播隔离、单播允许的局域网(比如校园网)子网之间实现 LocalSend 客户端的互相发现。各位好久不见~下半年又是忙论文又是忙项目的,实在是没什么时间更新笔记了。趁着今天有点空闲,咱来写写最近…

导师严选2026最新!专科生毕业论文一键生成工具TOP9测评

导师严选2026最新&#xff01;专科生毕业论文一键生成工具TOP9测评 2026年专科生毕业论文写作工具测评&#xff1a;功能与效率的深度解析 随着高校教育对学术规范要求的不断提升&#xff0c;专科生在撰写毕业论文时面临的挑战也日益增多。从选题构思到文献检索&#xff0c;从内…

Switch520游戏下载站 - 专业的switch游戏下载|ns免费游戏资源下载网站

在游戏资源获取领域&#xff0c;除了Steam、Epic等官方平台外&#xff0c;始终存在各类第三方资源聚合网站。Switch520​ 以其"完全免费"的定位和丰富的游戏库吸引用户&#xff0c;但此类平台的技術实现和合规性值得深入探讨。 网站地址&#xff1a;点击访问 一、网…

【课程设计/毕业设计】基于Java+SpringBoot城市化自修室管理系统基于springboot的城市化自修室管理系统【附源码、数据库、万字文档】

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

【毕业设计】基于springboot的城市化自修室管理系统(源码+文档+远程调试,全bao定制等)

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

Java毕设项目:基于springboot的城市化自修室管理系统(源码+文档,讲解、调试运行,定制等)

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