IoTSharp.Data.Taos 3.4.0

dotnet add package IoTSharp.Data.Taos --version 3.4.0
                    
NuGet\Install-Package IoTSharp.Data.Taos -Version 3.4.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="IoTSharp.Data.Taos" Version="3.4.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="IoTSharp.Data.Taos" Version="3.4.0" />
                    
Directory.Packages.props
<PackageReference Include="IoTSharp.Data.Taos" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add IoTSharp.Data.Taos --version 3.4.0
                    
#r "nuget: IoTSharp.Data.Taos, 3.4.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package IoTSharp.Data.Taos@3.4.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=IoTSharp.Data.Taos&version=3.4.0
                    
Install as a Cake Addin
#tool nuget:?package=IoTSharp.Data.Taos&version=3.4.0
                    
Install as a Cake Tool

IoTSharp.Data.Taos

🚀现在我们强烈推荐.Net 10 编写的 时序数据库 SonnetDB

SonnetDB 是一个面向 IoT、工业数据、可观测性与实时分析场景的时序数据库。它同时提供:

🧩 进程内嵌入式引擎(低延迟、易集成,in-proc API

🌐 HTTP 服务端(Admin UI、Help、认证和权限)

🔌 多语言连接器(C、Go、Rust、Java、Python、VB6、PureBasic)

🛠️ 标准 ADO.NET 与 CLI 工具链、AI Copilot 智能数据分析和查询维护

⚡ 高吞吐写入:支持 SQL、Line Protocol、JSON、Bulk fast-path。

🧠 丰富 SQL 能力:聚合、窗口函数、预测函数、控制函数(PID)和地理空间分析。

🗺️ GeoSpatial:GEOPOINT、轨迹长度/重心/速度统计、围栏查询、GeoJSON 输出。

🔐 服务端控制面:用户、数据库、授权、Token 生命周期管理。

项目简介

ADO.Net , Data, O/RM, TDengine

IoTSharp.Data.Taos 是 TDengine的ADO.Net提供程序。 它将允许你通过原生动态库、WebSocket、RESTful 三种协议访问TDengine,通过 Schemaless 完美实现了ExecuteBulkInsert批量插入、Stmt 实现了参数化执行。

连接协议说明

协议 使用 依赖 说明
WebSocket builder.UseWebSocket() 无依赖 纯C#实现, 支持 Schemaless 和 Stmt参数化
Cloud DSN builder_cloud.UseCloud_DSN() 无依赖 纯C#实现, 支持 Schemaless 和 Stmt参数化
Native builder.UseNative() libtaos 原生协议, 支持3.0.x libtaos 动态库,支持 Schemaless 和 Stmt参数化。使用前必须安装 TDengine-client
RESTful builder.UseRESTful() 无依赖 纯C#实现, 不支持 Schemaless 和 Stmt参数化

连接字符串示例

连接方式 示例
TDengine云服务 Data Source=gw.us-east.azure.cloud.tdengine.com;DataBase=iotsharp;Username=root;Password=taosdata;Port=80;PoolSize=20;Protocol=WebSocket;Token=4592d868d1b57c812edb3d8c11b4bbd1ffc747c0
使用原生库libtaos Data Source=DEVPER;DataBase=db_20230301123636;Username=root;Password=taosdata;Port=6030;PoolSize=20;Protocol=Native
使用 Http RESTful Data Source=DEVPER;DataBase=db_20230301123636;Username=root;Password=taosdata;Port=6041;PoolSize=20;Protocol=RESTful
使用 WebSocket Data Source=DEVPER;DataBase=db_20230301123636;Username=root;Password=taosdata;Port=6041;PoolSize=20;Protocol=WebSocket

Schemaless

通过 Schemaless 实现的 ExecuteBulkInsert 支持 TSDB_SML_LINE_PROTOCOL 和TSDB_SML_JSON_PROTOCOL 。 透过TSDB_SML_JSON_PROTOCOL也支持了InfluxDB Client中的 RecordData 的数据写法。

RecordData示例

  var rec=  RecordData.table("meters").Tag("location", "Beijing.Haidian").Tag("groupid", "2").Timestamp(DateTime.Now.ToUniversalTime(), TimePrecision.Ms)
                .Field("current", 12.1).Field("voltage", 234.0).Field("phase",0.33);
            int result = connection.ExecuteBulkInsert(rec);

IoTSharp.EntityFrameworkCore.Taos 已经废弃。


Build status License

NuGet名称 版本 下载量 说明
IoTSharp.Data.Taos IoTSharp.Data.Taos Nuget ADO.Net Core 基础组件
IoTSharp.EntityFrameworkCore.Taos IoTSharp.EntityFrameworkCore.Taos Nuget 供EF Core使用的组件
IoTSharp.HealthChecks.Taos IoTSharp.HealthChecks.Taos Nuget 供Asp.Net Core 使用的健康检查组件

TDengine技术开放日 — 从技术创新和设计思想,认识TDengine

荣誉证书

如何使用?

Example

基本示例:

    ///Specify the name of the database
    string database = "db_" + DateTime.Now.ToString("yyyyMMddHHmmss");
      string database = "db_" + DateTime.Now.ToString("yyyyMMddHHmmss");
      var builder = new TaosConnectionStringBuilder()
      {
            DataSource = "127.0.0.1",
            DataBase = database,
            Username = "root",
            Password = "kissme",
            Port=6060
            };
    //Example for ADO.Net 
    using (var connection = new TaosConnection(builder.ConnectionString))
    {
        connection.Open();
        Console.WriteLine("create {0} {1}", database, connection.CreateCommand($"create database {database};").ExecuteNonQuery());
        Console.WriteLine("create table t {0} {1}", database, connection.CreateCommand($"create table {database}.t (ts timestamp, cdata int);").ExecuteNonQuery());
        Console.WriteLine("insert into t values  {0}  ", connection.CreateCommand($"insert into {database}.t values ('{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.ms")}', 10);").ExecuteNonQuery());
        Console.WriteLine("insert into t values  {0} ", connection.CreateCommand($"insert into {database}.t values ('{DateTime.Now.AddMonths(1).ToString("yyyy-MM-dd HH:mm:ss.ms")}', 20);").ExecuteNonQuery());
        var cmd_select = connection.CreateCommand();
        cmd_select.CommandText = $"select * from {database}.t";
        var reader = cmd_select.ExecuteReader();
        Console.WriteLine(cmd_select.CommandText);
        Console.WriteLine("");
        ConsoleTableBuilder.From(reader.ToDataTable()).WithFormat(ConsoleTableBuilderFormat.MarkDown).ExportAndWriteLine();
        Console.WriteLine("");
        Console.WriteLine("DROP TABLE  {0} {1}", database, connection.CreateCommand($"DROP TABLE  {database}.t;").ExecuteNonQuery());
        Console.WriteLine("DROP DATABASE {0} {1}", database, connection.CreateCommand($"DROP DATABASE   {database};").ExecuteNonQuery());
        connection.Close();
    }
   
    Console.WriteLine("");
    Console.WriteLine("Pass any key to exit....");
    Console.ReadKey();

用于物联网的超级表示例:

IoTSharp/Storage/TaosStorage.cs


   using (var connection = new TaosConnection(builder.ConnectionString))
            {
                connection.Open();
                Console.WriteLine("ServerVersion:{0}", connection.ServerVersion);
                connection.CreateCommand("DROP DATABASE IF EXISTS  IoTSharp").ExecuteNonQuery();
                connection.CreateCommand("CREATE DATABASE IoTSharp KEEP 365 DAYS 10 BLOCKS 4;").ExecuteNonQuery();
                connection.ChangeDatabase("IoTSharp");
                connection.CreateCommand("CREATE TABLE IF NOT EXISTS telemetrydata  (ts timestamp,value_type  tinyint, value_boolean bool, value_string binary(10240), value_long bigint,value_datetime timestamp,value_double double)   TAGS (deviceid binary(32),keyname binary(64));").ExecuteNonQuery();
                //connection.CreateCommand($"CREATE TABLE dev_Thermometer USING telemetrydata TAGS (\"Temperature\")").ExecuteNonQuery();
                var devid = $"{Guid.NewGuid():N}";
                UploadTelemetryData(connection, devid, "Temperature", 999);
                UploadTelemetryData(connection,devid,   "Humidity", 888);
                var devid2 = $"{Guid.NewGuid():N}";
                UploadTelemetryData(connection, devid2, "Temperature", 777);
                UploadTelemetryData(connection, devid2, "Humidity", 666);
                var reader2 = connection.CreateCommand("select last_row(*) from telemetrydata group by deviceid,keyname ;").ExecuteReader();
                ConsoleTableBuilder.From(reader2.ToDataTable()).WithFormat(ConsoleTableBuilderFormat.Default).ExportAndWriteLine();
                connection.Close();
            }
            
             static void UploadTelemetryData(  TaosConnection connection, string devid, string keyname, int count)
        {
            for (int i = 0; i < count; i++)
            {
                connection.CreateCommand($"INSERT INTO device_{devid}_{keyname} USING telemetrydata TAGS(\"{devid}\",\"{keyname}\")  (ts,value_type,value_long) values (now,2,{i});").ExecuteNonQuery();
            }
        }
        
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (5)

Showing the top 5 NuGet packages that depend on IoTSharp.Data.Taos:

Package Downloads
IoTSharp.HealthChecks.Taos

提供涛思时序数据库的健康检查

IoTSharp.EntityFrameworkCore.Taos

TaosData database provider for Entity Framework Core.

IoTSharp.ORM.Taos

Package Description

IoTSharp.Data.TimeSeries

Package Description

IoTSinol.Data.TimeSeries

Package Description

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on IoTSharp.Data.Taos:

Repository Stars
IoTSharp/IoTSharp
IoTSharp is an open-source IoT platform for data collection, processing, visualization, and device management.
Version Downloads Last Updated
3.4.0 129 5/8/2026
3.0.21.90 17,932 3/1/2023
3.0.21.87 894 2/15/2023
3.0.21.74 1,624 1/7/2023
3.0.20 2,806 11/19/2022
3.0.18 728 11/18/2022
3.0.14 771 11/15/2022
3.0.2.64 833 1/6/2023
2.6.2 3,855 8/11/2022
2.0.478 3,243 5/12/2022
2.0.467 1,734 4/13/2022
2.0.453 1,141 3/30/2022
2.0.450 1,047 3/28/2022
2.0.448 907 3/24/2022
2.0.447 965 3/22/2022
2.0.442 1,021 3/15/2022
2.0.439 896 3/15/2022
2.0.438 910 3/15/2022

IoTSharp.Data.Taos  是一个TDengine 的ADO.Net 提供器。 这将允许你通过.Net Core 访问TDengine数据库。