static void Main(string[] args) { System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance); ///Specify the name of the database string database = "db_" + DateTime.Now.ToString("yyyyMMddHHmmss"); var builder = new TaosConnectionStringBuilder() { DataSource = "114.116.231.247", DataBase = database, Username = "******", Password = "******", 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 ({(long)(DateTime.Now.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalMilliseconds)}, 10);").ExecuteNonQuery()); //Console.WriteLine("insert into t values {0} ", connection.CreateCommand($"insert into {database}.t values ({(long)(DateTime.Now.AddMonths(1).Subtract(new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalMilliseconds)}, 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(); } //Example for Entity Framework Core using (var context = new TaosContext(new DbContextOptionsBuilder() .UseTaos(builder.ConnectionString).Options)) { Console.WriteLine("EnsureCreated"); context.Database.EnsureCreated(); for (int i = 0; i < 10; i++) { var rd = new Random(); context.sensor.Add(new sensor() { ts = DateTime.Now.AddMilliseconds(i), degree = rd.NextDouble(), pm25 = rd.Next(0, 1000) }); } Console.WriteLine("Saveing"); context.SaveChanges(); Console.WriteLine(""); Console.WriteLine("from s in context.sensor where s.pm25 > 0 select s "); Console.WriteLine(""); var f = from s in context.sensor where s.pm25 > 0 select s; var ary = f.ToArray(); ConsoleTableBuilder.From(ary.ToList()).WithFormat(ConsoleTableBuilderFormat.MarkDown).ExportAndWriteLine(); context.Database.EnsureDeleted(); } Console.WriteLine(""); }
private bool CheckDataBase() { if (!dbisok) { dbisok = Retry.RetryOnAny(10, f => { TaosConnection _taos = _taospool.Get(); { var _taosBuilder = new TaosConnectionStringBuilder(_taos.ConnectionString); if (_taos.State != System.Data.ConnectionState.Open) { _taos.Open(); } _taos.CreateCommand($"CREATE DATABASE IF NOT EXISTS {_taosBuilder.DataBase} KEEP 365 DAYS 10 BLOCKS 4;").ExecuteNonQuery(); _taos.ChangeDatabase(_taosBuilder.DataBase); _taos.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(); dbisok = true; _taospool.Return(_taos); } return(true); }, ef => { _logger.LogError(ef.ex, $"CheckDataBase第{ef.current}次失败{ef.ex.Message} {ef.ex.InnerException?.Message} "); }); } return(dbisok); }
private void BtnConnect_Click(object sender, EventArgs e) { if (_db == null) { TaosConnectionStringBuilder tc = new TaosConnectionStringBuilder(); try { tc = _connectionString ?? new TaosConnectionStringBuilder(Properties.Settings.Default.ServeInfo ?? new TaosConnectionStringBuilder().ConnectionString); } catch (Exception) { } var dialog = new ConnectionForm(tc); dialog.ShowDialog(); Properties.Settings.Default.ServeInfo = dialog.ConnectionString.ConnectionString; Properties.Settings.Default.Save(); if (dialog.DialogResult != DialogResult.OK) { return; } this.Connect(dialog.ConnectionString); } else { this.Disconnect(); } }
static void Main(string[] args) { ///Specify the name of the database string database = "db_" + DateTime.Now.ToString("yyyyMMddHHmmss"); var builder = new TaosConnectionStringBuilder() { DataSource = "http://td.gitclub.cn/rest/sql", DataBase = database, Username = "******", Password = "******" }; //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(); } //Example for Entity Framework Core using (var context = new TaosContext(new DbContextOptionsBuilder() .UseTaos(builder.ConnectionString).Options)) { Console.WriteLine("EnsureCreated"); context.Database.EnsureCreated(); for (int i = 0; i < 10; i++) { var rd = new Random(); context.sensor.Add(new sensor() { ts = DateTime.Now.AddMilliseconds(i), degree = rd.NextDouble(), pm25 = rd.Next(0, 1000) }); } Console.WriteLine("Saveing"); context.SaveChanges(); Console.WriteLine(""); Console.WriteLine("from s in context.sensor where s.pm25 > 0 select s "); Console.WriteLine(""); var f = from s in context.sensor where s.pm25 > 0 select s; var ary = f.ToArray(); ConsoleTableBuilder.From(ary.ToList()).WithFormat(ConsoleTableBuilderFormat.MarkDown).ExportAndWriteLine(); context.Database.EnsureDeleted(); } Console.WriteLine(""); Console.WriteLine("Pass any key to exit...."); Console.ReadKey(); }
/// <summary> /// Creates a new <see cref="TaosMigrationsSqlGenerator" /> instance. /// </summary> /// <param name="dependencies"> Parameter object containing dependencies for this service. </param> /// <param name="migrationsAnnotations"> Provider-specific Migrations annotations to use. </param> public TaosMigrationsSqlGenerator( [NotNull] MigrationsSqlGeneratorDependencies dependencies, [NotNull] IMigrationsAnnotationProvider migrationsAnnotations, IRelationalConnection connection) : base(dependencies) { _migrationsAnnotations = migrationsAnnotations; _taosConnectionStringBuilder = new TaosConnectionStringBuilder(connection.ConnectionString); }
/// <summary> /// This API supports the Entity Framework Core infrastructure and is not intended to be used /// directly from your code. This API may change or be removed in future releases. /// </summary> public TaosQuerySqlGenerator( [NotNull] QuerySqlGeneratorDependencies dependencies, [NotNull] SelectExpression selectExpression, TaosConnectionStringBuilder _taosConnectionStringBuilder) : base(dependencies, selectExpression) { __taosConnectionStringBuilder = _taosConnectionStringBuilder; }
/// <summary> /// This is an internal API that supports the Entity Framework Core infrastructure and not subject to /// the same compatibility standards as public APIs. It may be changed or removed without notice in /// any release. You should only use it directly in your code with extreme caution and knowing that /// doing so can result in application failures when updating to a new Entity Framework Core release. /// </summary> public virtual ITaosRelationalConnection CreateReadOnlyConnection() { var connectionStringBuilder = new TaosConnectionStringBuilder(ConnectionString); var contextOptions = new DbContextOptionsBuilder().UseTaos(connectionStringBuilder.ToString()).Options; return(new TaosRelationalConnection(Dependencies.With(contextOptions), _rawSqlCommandBuilder)); }
private async Task <TaosConnection> AsyncConnect(TaosConnectionStringBuilder connectionString) { return(await Task.Run(() => { var tc = new TaosConnection(connectionString.ToString()); tc.Open(); return tc; })); }
/// <summary> /// This API supports the Entity Framework Core infrastructure and is not intended to be used /// directly from your code. This API may change or be removed in future releases. /// </summary> /// <param name="dependencies"> Parameter object containing dependencies for this service. </param> /// <param name="migrationsAnnotations"> Provider-specific Migrations annotations to use. </param> public TaosMigrationsSqlGenerator( [NotNull] MigrationsSqlGeneratorDependencies dependencies, TaosConnectionStringBuilder taosConnectionStringBuilder, [NotNull] IMigrationsAnnotationProvider migrationsAnnotations) : base(dependencies) { _taosConnectionStringBuilder = taosConnectionStringBuilder; _migrationsAnnotations = migrationsAnnotations; }
public ConnectionForm(TaosConnectionStringBuilder cs) { InitializeComponent(); txtServerIPAddress.Text = cs.DataSource; txtPort.Text = cs.Port.ToString(); txtUsername.Text = cs.Username; txtPassword.Text = cs.Password; }
public TaosStorage(ILogger <TaosStorage> logger, IServiceScopeFactory scopeFactor , IOptions <AppSettings> options ) { _appSettings = options.Value; _logger = logger; scope = scopeFactor.CreateScope(); _taosBuilder = new TaosConnectionStringBuilder(_appSettings.ConnectionStrings["Taos"]); }
public async void Connect(TaosConnectionStringBuilder connectionString) { lblCursor.Text = Resources.Opening + connectionString.DataSource; lblElapsed.Text = Resources.Reading; prgRunning.Style = ProgressBarStyle.Marquee; btnConnect.Enabled = false; try { _db = await this.AsyncConnect(connectionString); // force open database var uv = _db.ServerVersion; } catch (Exception ex) { _db?.Dispose(); _db = null; MessageBox.Show(ex.Message, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } finally { lblCursor.Text = ""; lblElapsed.Text = ""; prgRunning.Style = ProgressBarStyle.Blocks; btnConnect.Enabled = true; } btnConnect.Enabled = true; lblCursor.Text = ""; prgRunning.Style = ProgressBarStyle.Blocks; _connectionString = connectionString; _codeCompletion.UpdateCodeCompletion(_db); btnConnect.Text = Resources.Disconnect; this.UIState(true); tabSql.TabPages.Add("+", "+"); this.LoadTreeView(); this.AddNewTab("(none)", ""); txtSql.Focus(); }
/// <summary> /// This API supports the Entity Framework Core infrastructure and is not intended to be used /// directly from your code. This API may change or be removed in future releases. /// </summary> public TaosQuerySqlGeneratorFactory([NotNull] QuerySqlGeneratorDependencies dependencies, TaosConnectionStringBuilder taosConnectionStringBuilder) : base(dependencies) { _taosConnectionStringBuilder = taosConnectionStringBuilder; }
static void Main(string[] args) { System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance); DbProviderFactories.RegisterFactory("TDengine", TaosFactory.Instance); ///Specify the name of the database string database = "db_" + DateTime.Now.ToString("yyyyMMddHHmmss"); var builder = new TaosConnectionStringBuilder() { DataSource = "taos", DataBase = database, Username = "******", Password = "******", Port = 6030 }; //Example for ADO.Net using (var connection = new TaosConnection(builder.ConnectionString)) { connection.Open(); Console.WriteLine("ServerVersion:{0}", connection.ServerVersion); 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 ({(long)(DateTime.Now.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalMilliseconds)}, 10);").ExecuteNonQuery()); var pmcmd = connection.CreateCommand($"insert into {database}.t values (@t, @c);"); Thread.Sleep(TimeSpan.FromSeconds(1)); pmcmd.Parameters.AddWithValue("@t", (long)(DateTime.Now.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalMilliseconds)); pmcmd.Parameters.AddWithValue("@c", 1111); pmcmd.ExecuteNonQuery(); Console.WriteLine("insert into t values {0} ", connection.CreateCommand($"insert into {database}.t values ({(long)(DateTime.Now.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalMilliseconds)}, 10);").ExecuteNonQuery()); //Console.WriteLine("insert into t values {0} ", connection.CreateCommand($"insert into {database}.t values ({(long)(DateTime.Now.AddMonths(1).Subtract(new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalMilliseconds)}, 20);").ExecuteNonQuery()); var cmd_select = connection.CreateCommand(); cmd_select.CommandText = $"select * from {database}.t;"; var reader = cmd_select.ExecuteReader(); int index = reader.GetOrdinal("cdata"); Console.WriteLine($"cdata index at {index}"); Console.WriteLine(cmd_select.CommandText); Console.WriteLine(""); ConsoleTableBuilder.From(reader.ToDataTable()).WithFormat(ConsoleTableBuilderFormat.MarkDown).ExportAndWriteLine(); Console.WriteLine(""); connection.CreateCommand($"CREATE TABLE datas ('reportTime' timestamp, type int, 'bufferedEnd' bool, address nchar(64), parameter nchar(64), value nchar(64)) TAGS ('boxCode' nchar(64), 'machineId' int);").ExecuteNonQuery(); connection.CreateCommand($"INSERT INTO data_history_67 USING datas TAGS (mongo, 67) values ( 1608173534840 2 false 'Channel1.窑.烟囱温度' '烟囱温度' '122.00' );").ExecuteNonQuery(); var cmd_datas = connection.CreateCommand(); cmd_datas.CommandText = $"SELECT reportTime,type,bufferedEnd,address,parameter,value FROM {database}.data_history_67 LIMIT 100"; var readerdatas = cmd_datas.ExecuteReader(); Console.WriteLine(cmd_datas.CommandText); Console.WriteLine(""); ConsoleTableBuilder.From(readerdatas.ToDataTable()).WithFormat(ConsoleTableBuilderFormat.Default).ExportAndWriteLine(); Console.WriteLine(""); Console.WriteLine("CREATE TABLE meters ", connection.CreateCommand($"CREATE TABLE meters (ts timestamp, current float, voltage int, phase float) TAGS (location binary(64), groupdId int);").ExecuteNonQuery()); Console.WriteLine("CREATE TABLE d1001 ", connection.CreateCommand($"CREATE TABLE d1001 USING meters TAGS (\"Beijing.Chaoyang\", 2);").ExecuteNonQuery()); Console.WriteLine("INSERT INTO d1001 ", connection.CreateCommand($"INSERT INTO d1001 USING METERS TAGS(\"Beijng.Chaoyang\", 2) VALUES(now, 10.2, 219, 0.32);").ExecuteNonQuery()); 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.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 STABLE 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(); Console.WriteLine("DROP DATABASE IoTSharp", database, connection.CreateCommand($"DROP DATABASE IoTSharp;").ExecuteNonQuery()); connection.Close(); } //Example for Entity Framework Core using (var context = new TaosContext(new DbContextOptionsBuilder() .UseTaos(builder.ConnectionString).Options)) { Console.WriteLine("EnsureCreated"); context.Database.EnsureCreated(); for (int i = 0; i < 10; i++) { var rd = new Random(); context.sensor.Add(new sensor() { ts = DateTime.Now.AddMilliseconds(i + 10), degree = rd.NextDouble(), pm25 = rd.Next(0, 1000) }); Thread.Sleep(10); } Console.WriteLine("Saveing"); context.SaveChanges(); Console.WriteLine(""); Console.WriteLine("from s in context.sensor where s.pm25 > 0 select s "); Console.WriteLine(""); var f = from s in context.sensor where s.pm25 > 0 select s; var ary = f.ToArray(); if (ary.Any()) { ConsoleTableBuilder.From(ary.ToList()).WithFormat(ConsoleTableBuilderFormat.MarkDown).ExportAndWriteLine(); } context.Database.EnsureDeleted(); } }
static void Main(string[] args) { System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance); ///Specify the name of the database string database = "db_" + DateTime.Now.ToString("yyyyMMddHHmmss"); var builder = new TaosConnectionStringBuilder() { DataSource = "taos", DataBase = database, Username = "******", Password = "******", Port = 6030 }; //Example for ADO.Net using (var connection = new TaosConnection(builder.ConnectionString)) { connection.Open(); Console.WriteLine("ServerVersion:{0}", connection.ServerVersion); Console.WriteLine("create {0} {1}", database, connection.CreateCommand($"create database {database};").ExecuteNonQuery()); connection.ChangeDatabase(database); 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 ({(long)(DateTime.Now.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalMilliseconds)}, 10);").ExecuteNonQuery()); var pmcmd = connection.CreateCommand($"insert into {database}.t values (@t, @c);"); Thread.Sleep(TimeSpan.FromSeconds(1)); pmcmd.Parameters.AddWithValue("@t", (long)(DateTime.Now.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalMilliseconds)); pmcmd.Parameters.AddWithValue("@c", 1111); pmcmd.ExecuteNonQuery(); Console.WriteLine("insert into t values {0} ", connection.CreateCommand($"insert into {database}.t values ({(long)(DateTime.Now.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalMilliseconds)}, 10);").ExecuteNonQuery()); //Console.WriteLine("insert into t values {0} ", connection.CreateCommand($"insert into {database}.t values ({(long)(DateTime.Now.AddMonths(1).Subtract(new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalMilliseconds)}, 20);").ExecuteNonQuery()); var cmd_select = connection.CreateCommand(); #pragma warning disable CA2100 // Review SQL queries for security vulnerabilities cmd_select.CommandText = $"select * from {database}.t"; #pragma warning restore CA2100 // Review SQL queries for security vulnerabilities var reader = cmd_select.ExecuteReader(); Console.WriteLine(cmd_select.CommandText); Console.WriteLine(""); ConsoleTableBuilder.From(reader.ToDataTable()).WithFormat(ConsoleTableBuilderFormat.MarkDown).ExportAndWriteLine(); Console.WriteLine(""); Console.WriteLine("CREATE TABLE meters ", connection.CreateCommand($"CREATE TABLE meters (ts timestamp, current float, voltage int, phase float) TAGS (location binary(64), groupdId int);").ExecuteNonQuery()); Console.WriteLine("CREATE TABLE d1001 ", connection.CreateCommand($"CREATE TABLE d1001 USING meters TAGS (\"Beijing.Chaoyang\", 2);").ExecuteNonQuery()); Console.WriteLine("INSERT INTO d1001 ", connection.CreateCommand($"INSERT INTO d1001 USING METERS TAGS(\"Beijng.Chaoyang\", 2) VALUES(now, 10.2, 219, 0.32);").ExecuteNonQuery()); 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(); } //Example for Entity Framework Core using (var context = new TaosContext(new DbContextOptionsBuilder() .UseTaos(builder.ConnectionString).Options)) { Console.WriteLine("EnsureCreated"); context.Database.EnsureCreated(); for (int i = 0; i < 10; i++) { var rd = new Random(); context.sensor.Add(new sensor() { ts = DateTime.Now.AddMilliseconds(i + 10), degree = rd.NextDouble(), pm25 = rd.Next(0, 1000) }); Thread.Sleep(10); } Console.WriteLine("Saveing"); context.SaveChanges(); Console.WriteLine(""); Console.WriteLine("from s in context.sensor where s.pm25 > 0 select s "); Console.WriteLine(""); var f = from s in context.sensor where s.pm25 > 0 select s; var ary = f.ToArray(); if (ary.Any()) { ConsoleTableBuilder.From(ary.ToList()).WithFormat(ConsoleTableBuilderFormat.MarkDown).ExportAndWriteLine(); } context.Database.EnsureDeleted(); } }
/// <summary> /// This API supports the Entity Framework Core infrastructure and is not intended to be used /// directly from your code. This API may change or be removed in future releases. /// </summary> public TaosUpdateSqlGenerator([NotNull] UpdateSqlGeneratorDependencies dependencies, TaosConnectionStringBuilder taosConnectionStringBuilder) : base(dependencies) { _taosConnectionStringBuilder = taosConnectionStringBuilder; }
public ConnectionForm(TaosConnectionStringBuilder cs) { InitializeComponent(); ConnectionString = cs; }