static void AnonymousExportData() { var filename = Guid.NewGuid().ToString() + ".xlsx"; System.IO.File.WriteAllBytes(filename, Properties.Resources.Empty); Random r = new Random(); var items = Enumerable.Range(0, 1000).Select(i => new { Id = i, Name = "Product " + i.ToString(), Category = r.Next(1, 10), IsValid = true }).ToArray(); using (var context = new ExcelContext(filename)) { var item = items[0]; var operate = context.Database.Manager.CreateTable(item.GetType(), DbName.NameOnly("Sheet1$")); context.Executor.Execute(operate); context.Set(item, "[Sheet1$]").AddRange(items); context.Executor.Execute(); } }
private void databaseBox_TextChanged(object sender, EventArgs e) { if (!String.IsNullOrEmpty(databaseBox.Text)) { try { DbName[] dbTemp = new DbName[dbTrees.Count]; dbTrees.CopyTo(dbTemp); foreach (var item in dbTemp) { if (item.DName.ToLower().Contains(databaseBox.Text.ToLower())) { item.IsSelected = true; } else { item.IsSelected = false; } } UpdateMenuTree(dbTemp.ToList()); } catch (Exception ex) { logger.Log(LogLevel.Error, ex.Message); } } else { InitMenuTree(); } }
public void Returns_Valid_Insert_Query() { // Arrange var schema = Rnd.Str; var name = Rnd.Str; var table = new DbName(schema, name); var c0Name = Rnd.Str; var c0Alias = Rnd.Str; var c0Property = Substitute.ForPartsOf <PropertyInfo>(); c0Property.Name.Returns(c0Alias); c0Property.Configure().CustomAttributes.Returns(Array.Empty <CustomAttributeData>()); var c0 = new Column(table, c0Name, c0Property); var c1Name = Rnd.Str; var c1Alias = Rnd.Str; var c1Property = Substitute.ForPartsOf <PropertyInfo>(); c1Property.Name.Returns(c1Alias); c1Property.Configure().CustomAttributes.Returns(Array.Empty <CustomAttributeData>()); var c1 = new Column(table, c1Name, c1Property); var list = new ColumnList(new[] { c0, c1 }); var client = new MySqlDbClient(); var expected = $"INSERT INTO `{schema}.{name}` (`{c0Name}`, `{c1Name}`) VALUES (@{c0Alias}, @{c1Alias}); " + "SELECT LAST_INSERT_ID();"; // Act var result = client.GetCreateQueryTest(table, list); // Assert Assert.Equal(expected, result); }
private void SaveDatabaseInternal(string patchDir, string modelVersion, string msg, int startNumber, string mongoSourceDir) { var project = DbName.StartsWith("sf_") ? DbName.Substring(3) : DbName; var file = Path.Combine(mongoSourceDir, $"{DbName}.json"); var content = TestHelper.Run(MongoExport, $"--host {Settings.MongoHostName}:{Settings.MongoPort} " + $"--db scriptureforge --collection projects --query '{{ \"projectCode\" : \"{project}\" }}'", mongoSourceDir); WriteJson(file, content); TestHelper.Run(Git, $"add {file}", mongoSourceDir); ExportCollection("activity", modelVersion); ExportCollection("lexicon", modelVersion); ExportCollection("lexiconComments", modelVersion); ExportCollection("optionlists", modelVersion); AddCollectionToGit("activity", modelVersion); AddCollectionToGit("lexicon", modelVersion); AddCollectionToGit("lexiconComments", modelVersion); AddCollectionToGit("optionlists", modelVersion); TestHelper.Run(Git, $"commit -a --allow-empty -m \"{msg}\"", mongoSourceDir); TestHelper.Run(Git, $"format-patch -1 -o {patchDir} --start-number {startNumber} --ignore-all-space", mongoSourceDir); }
public DataBase(DbName dbName, string tableName, string primaryKey, bool isAutoincrement) { this.database = dbFactory.Create(dbName.ToString()); this.tableName = tableName; this.primaryKey = primaryKey; this.isAutoincrement = isAutoincrement; }
public DataBase(DbName dbName, string tableName, string primaryKey, List <string> notContainField) { this.database = dbFactory.Create(dbName.ToString()); this.tableName = tableName; this.primaryKey = primaryKey; this.notContainField = notContainField; }
protected void Test00() { // Arrange var(builder, v) = Setup(); var t0Name = new DbName(Rnd.Str); var t0Column = Rnd.Str; var t0 = new TestTable0(t0Name, t0Column); var t1Name = new DbName(Rnd.Str); var t1Column = Rnd.Str; var t1 = new TestTable1(t1Name, t1Column); // Act var result = builder.AddRightJoin(v.Parts, t0, t => t.Foo, t1, t => t.Bar); // Assert var some = result.AssertSome(); Assert.NotSame(v.Parts, some); Assert.Collection(some.RightJoin, x => { Assert.Equal(t0Name, x.from.TblName); Assert.Equal(t0Column, x.from.ColName); Assert.Equal(t1Name, x.to.TblName); Assert.Equal(t1Column, x.to.ColName); } ); }
public override int GetHashCode() { int x = DbName == null ? 0 : DbName.GetHashCode(); int y = ObjectName == null ? 0 : ObjectName.GetHashCode(); return((-1423 * x) ^ y); }
public void Returns_Valid_Delete_Query_With_Version() { // Arrange var schema = Rnd.Str; var name = Rnd.Str; var table = new DbName(schema, name); var c0Name = Rnd.Str; var c0Alias = Rnd.Str; var c0Property = Substitute.ForPartsOf <PropertyInfo>(); c0Property.Name.Returns(c0Alias); var c0 = new Column(table, c0Name, c0Property); var c1Name = Rnd.Str; var c1Alias = Rnd.Str; var c1Property = Substitute.ForPartsOf <PropertyInfo>(); c1Property.Name.Returns(c1Alias); var c1 = new Column(table, c1Name, c1Property); var client = new SqlServerDbClient(); var id = Rnd.Lng; var expected = $"DELETE FROM [{schema}].[{name}] WHERE [{c0Name}] = {id} AND [{c1Name}] = @{c1Alias}"; // Act var result = client.GetDeleteQueryTest(table, c0, id, c1); // Assert Assert.Equal(expected, result); }
/// <summary> </summary> /// <param name="connectionHelper"></param> /// <param name="tableName"></param> /// <param name="inputQueueName"></param> /// <param name="rebusLoggerFactory"></param> /// <param name="asyncTaskFactory"></param> /// <param name="rebusTime"></param> public OracleTransport(OracleFactory connectionHelper, string tableName, string inputQueueName, IRebusLoggerFactory rebusLoggerFactory, IAsyncTaskFactory asyncTaskFactory, IRebusTime rebusTime) { if (rebusLoggerFactory == null) { throw new ArgumentNullException(nameof(rebusLoggerFactory)); } if (asyncTaskFactory == null) { throw new ArgumentNullException(nameof(asyncTaskFactory)); } if (tableName == null) { throw new ArgumentNullException(nameof(tableName)); } _log = rebusLoggerFactory.GetLogger <OracleTransport>(); _rebusTime = rebusTime ?? throw new ArgumentNullException(nameof(rebusTime)); _factory = connectionHelper ?? throw new ArgumentNullException(nameof(connectionHelper)); _table = new DbName(tableName); _sendSql = SendCommand.Sql(_table); // One-way clients don't have an input queue to receive from or cleanup if (inputQueueName != null) { Address = inputQueueName; _receiveSql = BuildReceiveSql(); _expiredSql = BuildExpiredSql(); _expiredMessagesCleanupTask = asyncTaskFactory.Create("ExpiredMessagesCleanup", PerformExpiredMessagesCleanupCycle, intervalSeconds: 60); } }
public void Returns_Valid_Delete_Query_Without_Version() { // Arrange var schema = Rnd.Str; var name = Rnd.Str; var table = new DbName(schema, name); var c0Name = Rnd.Str; var c0Alias = Rnd.Str; var c0Property = Substitute.ForPartsOf <PropertyInfo>(); c0Property.Name.Returns(c0Alias); var c0 = new Column(table, c0Name, c0Property); var client = new PostgreSqlDbClient(); var id = Rnd.Lng; var expected = $"DELETE FROM {schema}.{name} WHERE {c0Name} = {id};"; // Act var result = client.GetDeleteQueryTest(table, c0, id); // Assert Assert.Equal(expected, result); }
public void With_Predicates_Returns_Valid_Select_Query() { // Arrange var schema = Rnd.Str; var name = Rnd.Str; var table = new DbName(schema, name); var c0Name = Rnd.Str; var c0Alias = Rnd.Str; var c0 = new Column(table, c0Name, Helpers.CreateInfoFromAlias(c0Alias)); var c1Name = Rnd.Str; var c1Alias = Rnd.Str; var c1 = new Column(table, c1Name, Helpers.CreateInfoFromAlias(c1Alias)); var list = new ColumnList(new[] { c0, c1 }); var p0Column = new Column(table, Rnd.Str, Helpers.CreateInfoFromAlias()); var p0Operator = Compare.Like; var p0Value = Rnd.Str; var p1Column = new Column(table, Rnd.Str, Helpers.CreateInfoFromAlias()); var p1Operator = Compare.MoreThanOrEqual; var p1Value = Rnd.Int; var predicates = ImmutableList.Create(new (IColumn, Compare, object)[]
public override int GetHashCode() { unchecked { return(((DbName != null ? DbName.GetHashCode() : 0) * 397) ^ (Server != null ? Server.GetHashCode() : 0)); } }
public void CompareToTest3() { Assert.IsTrue(DbName.Parse("dbo.TableName") != null); Assert.IsTrue(DbName.Parse("dbo.TableName") != new DbName("ABC")); Assert.IsTrue(DbName.Parse("dbo.TableName") != string.Empty); Assert.IsTrue(DbName.Parse("[dbo].TableName") == "[TableName]"); Assert.IsTrue(DbName.Parse("[dbo].TableName1") != "[TableName]"); }
public void TableNameTest5() { var tb = DbName.Parse(".Table"); Assert.IsTrue(tb.Schema == "dbo"); Assert.IsTrue(tb.Name == "Table"); Assert.IsTrue(tb.FullName == "[dbo].[Table]"); Assert.IsTrue(tb.ToString() == tb.FullName); }
public DbContextContainer(DbKind dbKind, DbName dbName) { var builder = new ContainerBuilder(); builder.Register(o => BuildInstance(dbKind, dbName)); _DataAccess = builder.Build().Resolve <DbContextEx>(); _DataAccess.OpenConnection(); _DataAccess._DbKind = dbKind; }
public void TableNameTest3() { var tb = DbName.Parse("[tb].[Table]"); Assert.IsTrue(tb.Schema == "tb"); Assert.IsTrue(tb.Name == "Table"); Assert.IsTrue(tb.FullName == "[tb].[Table]"); Assert.IsTrue(tb.ToString() == tb.FullName); }
/// <summary> /// Constructs the subscription storage, storing subscriptions in the specified <paramref name="tableName"/>. /// If <paramref name="isCentralized"/> is true, subscribing/unsubscribing will be short-circuited by manipulating /// subscriptions directly, instead of requesting via messages /// </summary> public OracleSubscriptionStorage(OracleFactory connectionHelper, string tableName, bool isCentralized, IRebusLoggerFactory rebusLoggerFactory) { if (rebusLoggerFactory == null) { throw new ArgumentNullException(nameof(rebusLoggerFactory)); } _connectionHelper = connectionHelper ?? throw new ArgumentNullException(nameof(connectionHelper)); _table = new DbName(tableName) ?? throw new ArgumentNullException(nameof(tableName)); IsCentralized = isCentralized; _log = rebusLoggerFactory.GetLogger <OracleSubscriptionStorage>(); }
/// <summary> /// Constructs the timeout manager /// </summary> public OracleTimeoutManager(OracleFactory connectionHelper, string tableName, IRebusLoggerFactory rebusLoggerFactory, IRebusTime rebusTime) { if (rebusLoggerFactory == null) { throw new ArgumentNullException(nameof(rebusLoggerFactory)); } _connectionHelper = connectionHelper ?? throw new ArgumentNullException(nameof(connectionHelper)); _table = new DbName(tableName) ?? throw new ArgumentNullException(nameof(tableName)); _log = rebusLoggerFactory.GetLogger <OracleTimeoutManager>(); _rebusTime = rebusTime ?? throw new ArgumentNullException(nameof(rebusTime)); }
public void ImplicitTest2() { DbName tb = "tb.TableName"; Assert.IsTrue(tb.Name == "TableName"); Assert.IsTrue(tb.Schema == "tb"); string tbName = tb; Assert.IsTrue(tbName == tb.FullName); }
//创建名称。 private static DbName CreateName(DbContext context, TableMetadata principal, TableMetadata foreign, ForeignPrincipalPair[] pairs) { var foreignName = $"FK_{foreign.Name}_{principal.Name}_{string.Join("_", pairs.Select(a => a.ForeignKey.Name).ToArray())}_{string.Join("_", pairs.Select(a => a.PrincipalKey.Name).ToArray())}"; var maxlength = context.Configuration.DatabaseFeature.MaxIdentifierLength; if (maxlength.HasValue && foreignName.Length > maxlength.Value) { foreignName = foreignName.Substring(0, maxlength.Value); } return(DbName.NameOnly(foreignName)); }
/// <summary> /// Constructs the saga storage /// </summary> public OracleSqlSagaStorage(OracleFactory connectionHelper, string dataTableName, string indexTableName, IRebusLoggerFactory rebusLoggerFactory) { if (rebusLoggerFactory == null) { throw new ArgumentNullException(nameof(rebusLoggerFactory)); } _connectionHelper = connectionHelper ?? throw new ArgumentNullException(nameof(connectionHelper)); _dataTable = new DbName(dataTableName) ?? throw new ArgumentNullException(nameof(dataTableName)); _indexTable = new DbName(indexTableName) ?? throw new ArgumentNullException(nameof(indexTableName)); _log = rebusLoggerFactory.GetLogger <OracleSqlSagaStorage>(); }
public static (SqlServerDbClient client, Vars v) Get() { var schema = Rnd.Str; var name = Rnd.Str; var tableName = new DbName(schema, name); var table = Substitute.For <ITable>(); table.GetName().Returns(tableName); var client = new SqlServerDbClient(); return(client, new(table, schema, name)); }
public void Sets_Name() { // Arrange var name = Rnd.Str; // Act var result = new DbName(name); // Assert Assert.Null(result.Schema); Assert.Equal(name, result.Name); }
public void Returns_Valid_Update_Query_With_Version() { // Arrange var schema = Rnd.Str; var name = Rnd.Str; var table = new DbName(schema, name); var c0Name = Rnd.Str; var c0Alias = Rnd.Str; var c0PropertyInfo = Substitute.For <PropertyInfo>(); c0PropertyInfo.Name.Returns(c0Alias); var c0 = new Column(table, c0Name, c0PropertyInfo); var c1Name = Rnd.Str; var c1Alias = Rnd.Str; var c1PropertyInfo = Substitute.For <PropertyInfo>(); c1PropertyInfo.Name.Returns(c1Alias); var c1 = new Column(table, c1Name, c1PropertyInfo); var c2Name = Rnd.Str; var c2Alias = Rnd.Str; var c2Property = Substitute.ForPartsOf <PropertyInfo>(); c2Property.Name.Returns(c2Alias); var c2 = new Column(table, c2Name, c2Property); var c3Name = Rnd.Str; var c3Alias = Rnd.Str; var c3Property = Substitute.ForPartsOf <PropertyInfo>(); c3Property.Name.Returns(c3Alias); var c3 = new Column(table, c3Name, c3Property); var list = new ColumnList(new[] { c0, c1 }); var client = new SqlServerDbClient(); var id = Rnd.Lng; var expected = $"UPDATE [{schema}].[{name}] SET" + $" [{c0Name}] = @{c0Alias}," + $" [{c1Name}] = @{c1Alias}," + $" [{c3Name}] = @{c3Alias} + 1" + $" WHERE [{c2Name}] = {id}" + $" AND [{c3Name}] = @{c3Alias}"; // Act var result = client.GetUpdateQueryTest(table, list, c2, id, c3); // Assert Assert.Equal(expected, result); }
public void Sets_Schema_And_Name() { // Arrange var schema = Rnd.Str; var name = Rnd.Str; // Act var result = new DbName(schema, name); // Assert Assert.Equal(schema, result.Schema); Assert.Equal(name, result.Name); }
public void Without_Schema_Returns_Escaped_Name() { // Arrange var name = Rnd.Str; var table = new DbName(name); var escape = string (string obj) => $"<{obj}>"; // Act var result = table.GetFullName(escape); // Assert Assert.Equal(escape(name), result); }
/// <summary> /// Serves as a hash function for a particular type. /// </summary> /// <returns> /// A hash code for the current <see cref="T:System.Object"/>. /// </returns> public override int GetHashCode() { unchecked { var hashCode = ServerName?.GetHashCode() ?? 0; hashCode = (hashCode * 397) ^ (int)Type; hashCode = (hashCode * 397) ^ (UserName?.GetHashCode() ?? 0); hashCode = (hashCode * 397) ^ (Password?.GetHashCode() ?? 0); hashCode = (hashCode * 397) ^ (int)AuthenticationType; hashCode = (hashCode * 397) ^ (DbName?.GetHashCode() ?? 0); return(hashCode); } }
public void With_Schema_Returns_Escaped_Schema_And_Name() { // Arrange var schema = Rnd.Str; var name = Rnd.Str; var table = new DbName(schema, name); var escape = string (string obj) => $"<{obj}>"; // Act var result = table.GetFullName(escape); // Assert Assert.Equal($"{escape(schema)}{DbName.SchemaSeparator}{escape(name)}", result); }
public static void copyDatabase(DbName src_name, DbName dest_name, String src_sql, String dest_sql, String src_excel_path, String dest_excel_path) { IDbDataAdapter src_ada = null;//Adapter适配器自动开启和关闭连接 DbCommandBuilder src_cb = null; IDbDataAdapter dest_ada = null; DbCommandBuilder dest_cb = null; if (src_name != DbName.Excel) { createDbConnection(src_name, DbType.Source, ref src_ada, ref src_cb, src_sql); } if (dest_name != DbName.Excel) { createDbConnection(dest_name, DbType.Destination, ref dest_ada, ref dest_cb, dest_sql); } if (src_name != DbName.Excel && dest_name != DbName.Excel) { DataSet dest_ds = new DataSet(); dest_ada.Fill(dest_ds); DataSet src_ds = new DataSet(); src_ada.Fill(src_ds);//数据填充到DataSet dest_ds.Tables[0].Load(src_ds.CreateDataReader(), LoadOption.Upsert); dest_ada.Update(dest_ds); } else { //Excel到数据库 if (src_name == DbName.Excel && dest_name != DbName.Excel) { DataSet src_ds = LoadDataFromExcel(src_excel_path); DataSet dest_ds = new DataSet(); dest_ada.Fill(dest_ds); dest_ds.Tables[0].Load(src_ds.CreateDataReader(), LoadOption.Upsert); dest_ada.Update(dest_ds); } //数据库到Excel else if (src_name != DbName.Excel && dest_name == DbName.Excel) { DataSet src_ds = new DataSet(); src_ada.Fill(src_ds); SaveDataToExcel(src_ds, dest_excel_path); } } }
public override bool Equals(object obj) { if (obj == null || (obj as DbConnection) == null) { return(false); } DbConnection dbConn = obj as DbConnection; return(DbType == dbConn.DbType && ServerAddress.Equal(dbConn.ServerAddress) && DbName.Equal(dbConn.DbName) && Port.Equal(dbConn.Port) && UserName.Equal(dbConn.UserName) && Password.Equal(dbConn.Password)); }
public static void configDataSet(DbName name, DbType type) { String key = getAppKey(name, type); if (name != DbName.WinCE) { Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); MSDASC.DataLinks mydlg = new MSDASC.DataLinks(); ADODB.Connection ADOcon = new ADODB.Connection(); ADOcon.ConnectionString = config.AppSettings.Settings[key].Value; Dictionary<string, string> ht = splitConnectionString(ADOcon.ConnectionString); //Cast the generic object that PromptNew returns to an ADODB.Connection. //ADOcon = (ADODB.Connection)mydlg.PromptNew(); Object obj = ADOcon; if (mydlg.PromptEdit(ref obj)) { if (name == DbName.MySql) config.AppSettings.Settings[key].Value = ADOcon.ConnectionString + ";Ip=" + ht["ip"]; else config.AppSettings.Settings[key].Value = ADOcon.ConnectionString; //调试的时候外部App.config文件不修改 config.Save(); } } else { Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); String connectString = config.AppSettings.Settings[key].Value; Dictionary<string, string> ht = splitConnectionString(connectString); OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDialog1.FileName = ""; openFileDialog1.Filter = "*.sdf | *.sdf"; if (openFileDialog1.ShowDialog() == DialogResult.OK) { config.AppSettings.Settings[key].Value = "Persist Security Info = " + ht["persist security info"] + "; Password = '******'; Max Database Size = " + ht["max database size"] + "; Max Buffer Size = " + ht["max buffer size"] + ";Data Source='" + openFileDialog1.FileName + "'"; config.Save(); } } }
//要在C#中使用引用参数 ,必须在函数声明以及函数调用中都明确地使用关键字ref public static void createDbConnection(DbName dbName, DbType dbType, ref IDbDataAdapter ada, ref DbCommandBuilder cb, string sql) { String connStr = getConnStr(dbName, dbType); Dictionary<string, string> ht = splitConnectionString(connStr); if (dbName == DbName.Oracle) { string cnStr = "password="******"password"] + ";data source=" + ht["data source"] + ";user id=" + ht["user id"]; ada = new OracleDataAdapter(sql, cnStr);//构造查询(select)适配器 cb = new OracleCommandBuilder((OracleDataAdapter)ada);//该对象在adapter执行update的时候,自动生成insert,update,delete语句。 } else if (dbName == DbName.MSSql) { string cnStr = "Server=" + ht["data source"] + ";DataBase=" + ht["initial catalog"] + ";Uid=" + ht["user id"] + ";pwd=" + ht["password"]; ada = new SqlDataAdapter(sql, cnStr); cb = new SqlCommandBuilder((SqlDataAdapter)ada); } else if (dbName == DbName.MySql) { string cnStr = "Database=" + ht["initial catalog"] + ";Data Source=" + ht["ip"] + ";User Id=" + ht["user id"] + ";Password="******"password"]; ada = new MySqlDataAdapter(sql, cnStr); cb = new MySqlCommandBuilder((MySqlDataAdapter)ada); } else if (dbName == DbName.WinCE) { ada = new SqlCeDataAdapter(sql, connStr); cb = new SqlCeCommandBuilder((SqlCeDataAdapter)ada); } }
public static String getAppKey(DbName name, DbType type) { string key = null; switch (type) { case DbType.Source: key = "src_" + name.ToString(); break; case DbType.Destination: key = "dest_" + name.ToString(); break; } return key; }
public static String getConnStr(DbName name, DbType type) { String key = getAppKey(name, type); return ConfigurationManager.AppSettings[key]; }