public void TearDown() { CommandRunner.DeleteFile(Environment.CurrentDirectory + @"\TransferConfig.xml"); SqlCommandRunner.DeleteDb(_Db1); SqlCommandRunner.DeleteDb(_Db2); CommandRunner.CleanUpDirectory(_TestTempDirectory); }
public void ExecuteReader_Read_dynamically_and_unmapped_entity() { string tableName = "tst_SCR_01"; string createTableFormat = "create table {0}(Id integer primary key autoincrement not null, Prop1 nvarchar(50) not null, Prop2 datetime);"; string insertStatementFormat = "Insert into {0}(Prop1, Prop2) Values($prop1, $prop2);"; var transaction = session.BeginTransaction(); var dbConn = session.ConnectionManager.OpenConnection(); session.DataAccess.ExecuteNonQuery(dbConn, transaction, string.Format(createTableFormat, tableName)); for (int i = 1; i < 6; i++) { session.DataAccess.ExecuteNonQuery(dbConn, transaction, string.Format(insertStatementFormat, tableName), new QueryParam("prop1", DbType.String) { Value = string.Format("val{0}", i) }, new QueryParam("prop2", DbType.DateTime) { Value = DateTime.Now.AddDays(i) }); } session.CommitTransaction(); string query = "select Id, Prop1, Prop2 from " + tableName + " where Prop1 = 'val2'"; DynamicEntityMap dmap = new DynamicEntityMap(null, tableName, typeof(SqlCommandRunnerTestsFake1)); SqlCommandRunner runner = new SqlCommandRunner(); SqlCommandRunnerTestsFake1 ent1 = runner.ExecuteReader <SqlCommandRunnerTestsFake1>(dmap, dbConn, session, query, null).FirstOrDefault(); Assert.AreEqual("val2", ent1.Prop1); }
ICollection <T> RunQueryAndHydrate <T>() { SqlCommandRunner runner = new SqlCommandRunner(); var query = Build(); return(runner.RunList <T>(session, query, Parameters.ToArray())); }
public void Test1() { //获取并打印数据库中指定表的约束 List <ConstraintInfo> cis = SqlCommandRunner.GetConstraintInfo(_MainTableName, _TempDbName); Assert.AreEqual(2, cis.Count); PrintConstraintInfo(cis); //放弃这些约束 SqlCommandRunner.DropConstraintInfo(cis, _MainTableName, _TempDbName); List <ConstraintInfo> cis1 = SqlCommandRunner.GetConstraintInfo(_MainTableName, _TempDbName); Assert.AreEqual(0, cis1.Count); //重建约束 SqlCommandRunner.RestoreConstraintInfo(cis, _MainTableName, _TempDbName); List <ConstraintInfo> cis2 = SqlCommandRunner.GetConstraintInfo(_MainTableName, _TempDbName); Assert.AreEqual(2, cis2.Count); PrintConstraintInfo(cis2); //比较约束 for (int i = 0; i < 2; i++) { Assert.IsTrue(cis[i].Equals(cis2[i])); } }
public override int Execute() { //if it's a trackable entity and no changes where made, let's not waste our time running a query var trackable = entity as ITrackable; if (trackable != null && !trackable.IsDirty) { return(0); } var execList = Build(); int total = 0; var runner = new SqlCommandRunner(); var dialect = session.SessionFactory.DbSettings.SqlDialect; //if(trackable != null) //{ // logger.Log(LogLevel.Debug, string.Format("changes found {0} ", trackable.ChangeTracker.GetChangedItems().Count)); //} foreach (var update in execList.Statements.Values) { var parameters = new List <QueryParam>(); parameters.AddRange(whereParameters); parameters.AddRange(update.Columns.Values.Select(p => p.Item1)); total += runner.ExecuteNonQuery(session, update.ToString(dialect), parameters.ToArray()); } foreach (var manyToManyOp in execList.ManyToManyStatements) { total += runner.ExecuteNonQuery(session, manyToManyOp.Item1, manyToManyOp.Item2.ToArray()); } return(total); }
public T FetchOne <T>() { var runner = new SqlCommandRunner(); var query = Build(); return(runner.Run <T>(session, query, Parameters.ToArray())); }
public void SetUp() { string currentPath = Environment.CurrentDirectory; StaticConfigTable.ConnectionString = ConfigurationManager.AppSettings["ConnectionString"]; StaticConfigTable.SetRunningConfigDefault(); //构建临时数据文件夹 _TestTempDirectory = ConfigurationManager.AppSettings["TestTempDirectory"]; Assert.IsNotNull(_TestTempDirectory); _TestTempDirectory = DiskOperations.CorrectDirectory(_TestTempDirectory); DiskOperations.CheckAndCreateDirectory(_TestTempDirectory); //拷贝配置文件 string theTransferRuleConfig = string.Format(@"{0}\..\..\TestResources\TransferConfig.xml", currentPath); Assert.IsTrue(File.Exists(theTransferRuleConfig)); CommandRunner.CopyToDirectory(theTransferRuleConfig, currentPath); //还原2个数据库用于测试 string rarFile = string.Format(@"{0}\..\..\TestResources\TestDbs.rar", currentPath); Assert.IsTrue(File.Exists(rarFile)); CommandRunner.UnRarFileToDirectory(rarFile, _TestTempDirectory, true); Assert.IsTrue(File.Exists(_TestTempDirectory + "As_BackUp.bak")); Assert.IsTrue(File.Exists(_TestTempDirectory + "Crm_BackUp.bak")); SqlCommandRunner.RestoreDbFromFile(_Db1, _TestTempDirectory, _TestTempDirectory + "As_BackUp.bak"); SqlCommandRunner.RestoreDbFromFile(_Db2, _TestTempDirectory, _TestTempDirectory + "Crm_BackUp.bak"); //mock日志记录 _MockITransferDataLog = new MockITransferDataLog(); TransferDataLogManager.SetLogInstance = _MockITransferDataLog; }
public void Test3() { string targetName = string.Format("{0}{1}.bak", DiskOperations.CorrectDirectory(_TestTempDirectory), _TempDbName); SqlCommandRunner.BackUpDb(_TempDbName, targetName); Assert.IsTrue(File.Exists(targetName)); CommandRunner.DeleteFile(targetName); }
private string PrintAllTableInfo(TransferRule aTr) { StringBuilder retVal = new StringBuilder(); retVal.AppendLine(SqlCommandRunner.GetTableInfo(aTr.DbsToTransfer[0].TablesToTransfer[0].TableName, _TempDbName)); retVal.AppendLine(SqlCommandRunner.GetTableInfo(aTr.DbsToTransfer[0].ProtectTableNames[0], _TempDbName)); retVal.AppendLine(SqlCommandRunner.GetTableInfo(aTr.DbsToTransfer[0].ProtectTableNames[1], _TempDbName)); return(retVal.ToString()); }
private void DeleteAllTableData(string dbName) { StringBuilder sb = new StringBuilder(); foreach (string tableName in SqlCommandRunner.GetAllTables(dbName)) { sb.AppendLine(string.Format("delete from {0} ", tableName)); } SqlCommandRunner.DelAllFks(_Db1); SqlCommandRunner.ExecuteNonQuery(new SqlCommand(sb.ToString()), dbName); }
public int Count() { if (ColumNames.Count < 1) { throw new InvalidOperationException("no columns has been selected"); } var query = Build(true); var runner = new SqlCommandRunner(); return(runner.Run <int>(session, query, Parameters.ToArray())); }
public int Execute() { var updateBody = Build(); var runner = new SqlCommandRunner(); var localParameters = new List <QueryParam>(); localParameters.AddRange(Parameters); localParameters.AddRange(updateBody.Columns.Values.Select(p => p.Item1)); return(runner.ExecuteNonQuery(session, updateBody.ToString(dialect), localParameters.ToArray())); }
private int GetCountOfTable(string tableName, string dbName) { string command = string.Format("select count(*) as RetValue from {0}", tableName); using (SqlDataReader sdr = SqlCommandRunner.ExecuteReader(new SqlCommand(command), dbName)) { while (sdr.Read()) { return(int.Parse(sdr["RetValue"].ToString())); } } throw new Exception("未找到行数量"); }
private void MockChangment() { string sqlCommand = @" --修改tleaverequest的2行数据 update tleaverequest set absentHours = 999 --删除tleaverequestItem的1行数据 delete tleaverequestitem where pkid = 2 --增加/修改tleaverequestflow的4行数据 update tleaverequestflow set operatorId = 99 insert into tleaverequestflow(leaveRequestItemId,operatorId,operation,operationTime,remark) values(1,88,55,'2009-6-19','hello')"; SqlCommandRunner.ExecuteNonQuery(new SqlCommand(sqlCommand), _TempDbName); }
private void MockAddLeaveRequest() { string sqlCommand = @" declare @id int insert into tleaverequest(accountid,leaverequesttypeid,reason,submitdate,absentfrom,absentto,absenthours,diyprocess) values(3,2,'','2009-6-9','2009-6-15','2009-6-15',8,'') select @id = SCOPE_IDENTITY() insert into tleaverequestitem(leaverequestid,status,absentfrom,absentto,absenthours,nextprocessid) values(@id,3,'2009-6-15','2009-6-15',8,3) select @id = SCOPE_IDENTITY() insert into tleaverequestflow(leaveRequestItemId,operatorId,operation,operationTime,remark) values(@id,88,55,'2009-6-9','hello')"; SqlCommandRunner.ExecuteNonQuery(new SqlCommand(sqlCommand), _TempDbName); }
/// <summary> /// Executes this instance. /// </summary> /// <returns></returns> public override int Execute() { var execList = Build(); int total = 0; var runner = new SqlCommandRunner(); var dialect = session.SessionFactory.DbSettings.SqlDialect; foreach (var del in execList.Statements.Values) { var parameters = new List <QueryParam>(); parameters.AddRange(whereParameters); total += runner.ExecuteNonQuery(session, del.ToString(dialect), parameters.ToArray()); } return(total); }
ICollection <T> RunQueryAndHydrateWithPaging <T>(out long total) { if (limit < 1) { limit = 0; } if (offset < 1) { offset = 0; } SqlCommandRunner runner = new SqlCommandRunner(); var query = Build(); return(runner.RunList <T>(session, query, limit, offset, out total, Parameters.ToArray())); }
private void MockChangment() { //主表新增一行记录,修改一行记录,删除一行记录 //附表1删除一行记录,附表2删除2行记录 string sqlCommand = @"insert into tapplication(applicantid,applicantName,applicationDate,applicationFrom,ApplicationTo,CostTime,Status,Reason,Type,OvertimeType) values(1,'','2008-10-2','2008-10-2','2008-10-2',4,1,'',1,1) update tapplication set applicantName = 'modifyByTester' where pkid =278 delete tapplication where pkid = 279 delete tapplicationEmployee where applicationId = 279 delete tapplicationFlow where applicationId = 279"; SqlCommandRunner.ExecuteNonQuery(new SqlCommand(sqlCommand), _TempDbName); }
public void SetUp() { //配置文件读取 _ConnectionString = ConfigurationManager.AppSettings["ConnectionString"]; _TestTempDirectory = ConfigurationManager.AppSettings["TestTempDirectory"]; Assert.IsNotNull(_ConnectionString); Assert.IsNotNull(_TestTempDirectory); StaticConfigTable.ConnectionString = _ConnectionString; DiskOperations.CheckAndCreateDirectory(DiskOperations.CorrectDirectory(_TestTempDirectory)); //数据库资源路径 string currentPath = Environment.CurrentDirectory; string theBackUpDb = string.Format(@"{0}\..\..\TestResources\TestApplicationFilterDb.bak", currentPath); Assert.IsTrue(File.Exists(theBackUpDb)); //开始构建1数据库 SqlCommandRunner.RestoreDbFromFile(_TempDbName, DiskOperations.CorrectDirectory(_TestTempDirectory), theBackUpDb); SqlCommandRunner.RestoreDbFromFile(_TempOtherDbName, DiskOperations.CorrectDirectory(_TestTempDirectory), theBackUpDb); }
int Execute(ISession session, InsertSqlInfo statement) { var sql = statement.ToString(session.SessionFactory.DbSettings.SqlDialect); var cmdr = new SqlCommandRunner(); var parameters = new List <QueryParam>(); parameters.AddRange(GeneratedKeys.Values); foreach (var queryParam in statement.Parameters) { if (!GeneratedKeys.ContainsKey(queryParam.Key)) { parameters.Add(queryParam.Value); } } return(cmdr.ExecuteNonQuery(session, sql, parameters.ToArray())); }
public void Test2() { //删除数据库1的一个表 SqlCommandRunner.DropTable(_MainTableName, _TempOtherDbName); //表没有了,表信息就没有办法打印出来 try { Console.WriteLine(SqlCommandRunner.GetTableInfo(_MainTableName, _TempOtherDbName)); Assert.Fail(); } catch (Exception e) { Console.WriteLine(e.Message); } //拷贝数据库的表过来作为替换 SqlCommandRunner.CopyTable(_MainTableName, _TempDbName, _TempOtherDbName); Console.WriteLine(SqlCommandRunner.GetTableInfo(_MainTableName, _TempOtherDbName)); }
object Execute(ISession session, InsertSqlInfo statement, Type resultType) { if (resultType == null) { resultType = typeof(object); } var sql = statement.ToString(session.SessionFactory.DbSettings.SqlDialect); var cmdr = new SqlCommandRunner(); var parameters = new List <QueryParam>(); parameters.AddRange(GeneratedKeys.Values); foreach (var queryParam in statement.Parameters) { if (!GeneratedKeys.ContainsKey(queryParam.Key)) { parameters.Add(queryParam.Value); } } return(cmdr.ExecuteScalar(session, sql, resultType, parameters.ToArray())); }
public void TearDown() { SqlCommandRunner.DeleteDb(_TempDbName); SqlCommandRunner.DeleteDb(_TempOtherDbName); }