public void ReturnsSwitchTableCommand() { // Arrange var connection = new SqlConnection(); var viewName = "myViewName"; var tableName = "myTableName"; var columns = new[] { "key_part_1", "key_part_2", "nullable_text", "nullable_number", "nullable_datetimeoffset", "nullable_money", "nullable_varbinary", "nullable_image", }; // Act var command = SqlConnectionExtensions.GetSwitchTableCommand(connection, viewName, tableName, columns); // Assert Assert.Equal(@"ALTER VIEW [myViewName] AS SELECT [key_part_1], [key_part_2], [nullable_text], [nullable_number], [nullable_datetimeoffset], [nullable_money], [nullable_varbinary], [nullable_image] FROM [myTableName];", command.CommandText, ignoreLineEndingDifferences: true); }
/// <summary> /// 初始化部分值 /// </summary> private void Init() { using (SqlConnection connection = SqlConnectionExtensions.GetConnection()) { string sql = "select CityName from dbo.[KC.Fengniaowu.Talos.Cities] where Enabled = 1"; List <string> cities = connection.Query <string>(sql).ToList(); if (cities.Count > 0) { cmb_CityName.DataSource = cities; } string sql2 = "select top 1 Cellphone from dbo.[KC.Fengniaowu.Talos.Accounts] where Enabled = 1 and Cellphone like '%10500000%' order by Cellphone desc"; string cellphone = connection.QueryFirst <string>(sql2); string numberString = cellphone.Substring(8, 3); int number = Convert.ToInt32(numberString); number++; string newCellphone = cellphone.Substring(0, 8); if (number < 100) { newCellphone += $"0{number}"; } else if (number >= 100 && number < 1000) { newCellphone += number; } else { MessageBox.Show("手机号已超过999个"); } txb_Cellphone.Text = newCellphone; } }
public void ReturnsTruncateTableCommand() { // Arrange var connection = new SqlConnection(); var tableName = "myTableName"; // Act var command = SqlConnectionExtensions.GetTruncateTableCommand(connection, tableName); // Assert Assert.Equal("TRUNCATE TABLE [myTableName];", command.CommandText); }
public static List <PenaltySetting> GetPenaltySettings() { string sql = "select PenaltyConfig from dbo.[KC.Fengniaowu.Talos.Schedules] where Enabled = 1 and ScheduleId = '5337DCC80FEE45D39EAB76ACD2BF20A8'"; using (SqlConnection connection = SqlConnectionExtensions.GetConnection()) { connection.Open(); string result = connection.QueryFirstOrDefault <string>(sql); return(JsonConvert.DeserializeObject <List <PenaltySetting> >(result)); } }
public static List <SimpleApartment> GetApartmentsByTenancyId(string tenancyId) { string sql = $"select ApartmentId, ApartmentName from dbo.[KC.Fengniaowu.Talos.Apartments] where Enabled = 1 and AssetTenancyId = '{tenancyId}'"; using (SqlConnection connection = SqlConnectionExtensions.GetConnection()) { connection.Open(); List <SimpleApartment> result = connection.Query <SimpleApartment>(sql).ToList(); return(result); } }
public static List <SimpleTenancy> GetTenancies() { string sql = "select TenancyId, TenancyName from dbo.[KC.Fengniaowu.Talos.Tenancies] where Enabled = 1"; using (SqlConnection connection = SqlConnectionExtensions.GetConnection()) { connection.Open(); List <SimpleTenancy> result = connection.Query <SimpleTenancy>(sql).ToList(); return(result); } }
private async Task AddPermissionsAsync(dynamic users, List <string> permissionIds) { List <string> failedUsers = new List <string>(); using (SqlConnection connection = SqlConnectionExtensions.GetConnection()) { connection.Open(); foreach (dynamic user in users) { // 若已有该权限,跳过 string addPermissionIds = null; foreach (string permissionId in permissionIds) { if (!user.Permissions.Contains(permissionId)) { addPermissionIds += "\"" + permissionId + "\","; } } if (addPermissionIds == null) { continue; } addPermissionIds = addPermissionIds.Remove(addPermissionIds.Length - 1, 1); string permissions = user.Permissions; string newPermissions = permissions.Remove(permissions.Length - 1, 1) + "," + addPermissionIds + "]"; user.Permissions = newPermissions; string sql4 = $"update dbo.[KC.Fengniaowu.Talos.Users] set Permissions = '{newPermissions}' where UserId = '{user.UserId}'"; int row = connection.Execute(sql4); if (row < 0) { failedUsers.Add(user.UserId); AppendMessage($"{user.UserId},更新数据库失败。"); } else { // 刷新用户缓存 await ClearCacheOfUserAsync(user, failedUsers); } } } AppendMessage($"执行结束,失败数量:{failedUsers.Count}。"); }
public void ReturnsSelectIntoTemporaryTableCommand() { // Arrange var connection = new SqlConnection(); var baseTableName = "myTableName"; var tempTableName = "#myTableName"; // Act var comnand = SqlConnectionExtensions.GetSelectIntoTemporaryTableCommand(connection, baseTableName, tempTableName); // Assert Assert.Equal(@"SELECT TOP 0 * INTO [#myTableName] FROM [myTableName];", comnand.CommandText, ignoreLineEndingDifferences: true); }
private async Task DeletePermissionsAsync(dynamic users, List <string> permissionIds) { List <string> failedUsers = new List <string>(); using (SqlConnection connection = SqlConnectionExtensions.GetConnection()) { connection.Open(); foreach (dynamic user in users) { List <string> permissions = JsonConvert.DeserializeObject <List <string> >(user.Permissions); int oldCount = permissions.Count; foreach (string permissionId in permissionIds) { if (permissions.Contains(permissionId)) { permissions.Remove(permissionId); } } // user 权限没有任何变化时,跳过 if (oldCount == permissions.Count) { continue; } string newPermissions = JsonConvert.SerializeObject(permissions); user.Permissions = newPermissions; string sql4 = $"update dbo.[KC.Fengniaowu.Talos.Users] set Permissions = '{newPermissions}' where UserId = '{user.UserId}'"; int row = connection.Execute(sql4); if (row < 0) { failedUsers.Add(user.UserId); AppendMessage($"{user.UserId},更新数据库失败。"); } else { // 刷新用户缓存 await ClearCacheOfUserAsync(user, failedUsers); } } } AppendMessage($"执行结束,失败数量:{failedUsers.Count}。"); }
public void UpdateWhenMatchedIsTrue_ReturnsMergeCommandWithUpdateWhenMatched() { // Arrange var connection = new SqlConnection(); var targetTable = "myTableName"; var tableSource = "myTableSource"; var columns = new[] { "key_part_1", "key_part_2", "nullable_text", "nullable_number", "nullable_datetimeoffset", "nullable_money", "nullable_varbinary", "nullable_image", }; var primaryKeyColumns = new[] { "key_part_1", "key_part_2", }; var updateWhenMatched = true; // Act var command = SqlConnectionExtensions.GetMergeCommand(connection, targetTable, tableSource, columns, primaryKeyColumns, updateWhenMatched); // Assert Assert.Equal(@"MERGE INTO [myTableName] AS [Target] USING [myTableSource] AS [Source] ON ([Target].[key_part_1] = [Source].[key_part_1] AND [Target].[key_part_2] = [Source].[key_part_2]) WHEN MATCHED THEN UPDATE SET [Target].[nullable_text] = [Source].[nullable_text], [Target].[nullable_number] = [Source].[nullable_number], [Target].[nullable_datetimeoffset] = [Source].[nullable_datetimeoffset], [Target].[nullable_money] = [Source].[nullable_money], [Target].[nullable_varbinary] = [Source].[nullable_varbinary], [Target].[nullable_image] = [Source].[nullable_image] WHEN NOT MATCHED THEN INSERT ([key_part_1], [key_part_2], [nullable_text], [nullable_number], [nullable_datetimeoffset], [nullable_money], [nullable_varbinary], [nullable_image]) VALUES ([key_part_1], [key_part_2], [nullable_text], [nullable_number], [nullable_datetimeoffset], [nullable_money], [nullable_varbinary], [nullable_image]); ", command.CommandText, ignoreLineEndingDifferences: true); }
private static void SavePenaltyConfig(string penaltyConfigString) { string sql = $"update dbo.[KC.Fengniaowu.Talos.Schedules] set PenaltyConfig = '{penaltyConfigString}' where ScheduleId = '5337DCC80FEE45D39EAB76ACD2BF20A8'"; using (SqlConnection connection = SqlConnectionExtensions.GetConnection()) { connection.Open(); int row = connection.Execute(sql); if (row > 0) { MessageBox.Show("成功"); } else { MessageBox.Show("失败"); } } }
public void ReturnsAlterNonclusteredIndexesCommand() { // Arrange var connection = new SqlConnection(); var tableName = "myTableName"; var action = "DISABLE"; // Act var command = SqlConnectionExtensions.GetAlterNonclusteredIndexesCommand(connection, tableName, action); // Assert Assert.Equal(@"DECLARE @sql AS nvarchar(max) = ''; SELECT @sql = @sql + 'ALTER INDEX ' + QUOTENAME(sys.indexes.name) + ' ON ' + QUOTENAME(sys.objects.name) + ' ' + @action + ';' + CHAR(13) + CHAR(10) FROM sys.indexes JOIN sys.objects ON sys.indexes.object_id = sys.objects.object_id WHERE sys.indexes.type_desc = 'NONCLUSTERED' AND sys.objects.type_desc = 'USER_TABLE' AND sys.objects.name = @tableName; EXEC(@sql);", command.CommandText, ignoreLineEndingDifferences: true); Assert.True(command.Parameters.Contains("@tableName")); }
private async Task MegrateAsync(string apartmentId, string tenancyId, string cellphone) { DateTimeOffset time = Time.Now; using (SqlConnection connection = SqlConnectionExtensions.GetConnection()) { await connection.OpenAsync(); // 查询公寓和商户是否有效 string sql1 = "select count(ApartmentId) from dbo.[KC.Fengniaowu.Talos.Apartments] where ApartmentId = @apartmentId and Enabled = 1"; long count1 = await connection.QueryFirstAsync <long>(sql1, new { ApartmentId = apartmentId }); if (count1 == 0) { MessageBox.Show($"公寓Id({apartmentId})不存在"); return; } string sql2 = "select count(TenancyId) from dbo.[KC.Fengniaowu.Talos.Tenancies] where TenancyId = @tenancyId and Enabled = 1"; long count2 = await connection.QueryFirstAsync <long>(sql2, new { TenancyId = tenancyId }); if (count2 == 0) { MessageBox.Show($"商户Id({tenancyId})不存在"); return; } string sql3 = $"select * from dbo.[KC.Fengniaowu.Talos.Apartments] where ApartmentId = '{apartmentId}' and Enabled = 1"; dynamic apartment = await connection.QueryFirstAsync <dynamic>(sql3); if (apartment.AssetTenancyId == tenancyId) { MessageBox.Show("该公寓不需要迁移"); return; } string sql4 = $"select * from dbo.[KC.Fengniaowu.Talos.Districts] where DistrictId = '{apartment.DistrictId}'"; dynamic district = await connection.QueryFirstAsync <dynamic>(sql4); string sql5 = $"select * from dbo.[KC.Fengniaowu.Talos.Accounts] where Enabled = 1 and TenancyId = '{tenancyId}' and Cellphone = '{cellphone}'"; dynamic account = await connection.QueryFirstAsync <dynamic>(sql5); string sql6 = $"select VillageId from dbo.[KC.Fengniaowu.Ladon.Villages] where Enabled = 1 and TenancyId = '{tenancyId}' and (ApartmentId = '{apartmentId}' or RelationIds = '{apartmentId}')"; IEnumerable <string> villageIds = await connection.QueryAsync <string>(sql6); // 修改公寓表商户Id string s1 = $"update dbo.[KC.Fengniaowu.Talos.Apartments] set AssetTenancyId = '{tenancyId}' where ApartmentId = '{apartmentId}'"; // 修改公寓DistrictId Guid districtGuid = ID.NewSequentialGuid(); string s2 = $@"if not exists( select * from dbo.[KC.Fengniaowu.Talos.Districts] where TenancyId = '{tenancyId}' and CityName = '{district.CityName}' and DistrictName = '{district.DistrictName}' ) INSERT INTO [dbo].[KC.Fengniaowu.Talos.Districts]([ActorId], [DistrictId], [TenancyId], [CityName], [DistrictName], [Enabled], [CreateTime], [UpdateTime], [Data]) VALUES ('{districtGuid}', '{districtGuid.ToGuidString()}', '{tenancyId}', N'{district.CityName}', N'{district.DistrictName}', '1', '{time}', '{time}', N'{{}}')"; string s3 = $@"update dbo.[KC.Fengniaowu.Talos.Apartments] set DistrictId = (select DistrictId from dbo.[KC.Fengniaowu.Talos.Districts] where TenancyId = '{tenancyId}' and CityName = '{district.CityName}' and DistrictName = '{district.DistrictName}') where ApartmentId = '{apartmentId}'"; // 修改房间表商户Id string s4 = $"update dbo.[KC.Fengniaowu.Talos.Rooms] set AssetTenancyId = '{tenancyId}' where ApartmentId = '{apartmentId}' and Enabled = 1"; // 修改合同表商户Id string s5 = $"update dbo.[KC.Fengniaowu.Talos.Contracts] set AssetTenancyId = '{tenancyId}' where ApartmentId = '{apartmentId}' and Enabled = 1"; // 修改账单表商户Id string s6 = $"update dbo.[KC.Fengniaowu.Talos.Orders] set AssetTenancyId = '{tenancyId}' where ApartmentId = '{apartmentId}' and Enabled = 1"; // 修改流水表商户Id string s7 = $"update dbo.[KC.Fengniaowu.Talos.Transactions] set AssetTenancyId = '{tenancyId}' where ApartmentId = '{apartmentId}' and Enabled = 1"; // 修改流水明细表商户Id string s8 = $"update dbo.[KC.Fengniaowu.Talos.TransactionDetails] set AssetTenancyId = '{tenancyId}' where ApartmentId = '{apartmentId}' and Enabled = 1"; // 修改Cleaning表商户Id string s9 = $"update dbo.[KC.Fengniaowu.Talos.Cleanings] set AssetTenancyId = '{tenancyId}' where ApartmentId = '{apartmentId}' and Enabled = 1"; // 修改ComplaintSuggestions表商户Id string s10 = $"update dbo.[KC.Fengniaowu.Talos.ComplaintSuggestions] set AssetTenancyId = '{tenancyId}' where ApartmentId = '{apartmentId}' and Enabled = 1"; // 修改ContractCheckoutInfos表商户Id string s11 = $"update dbo.[KC.Fengniaowu.Talos.ContractCheckoutInfos] set TenancyId = '{tenancyId}' where ApartmentId = '{apartmentId}' and Enabled = 1"; // 修改DomesticServiceConfig表商户Id string s12 = $"update dbo.[KC.Fengniaowu.Talos.DomesticServiceConfigs] set AssetTenancyId = '{tenancyId}' where ApartmentId = '{apartmentId}' and Enabled = 1"; // 修改IntelligentDeviceConfigs表商户Id string s13 = $"update dbo.[KC.Fengniaowu.Talos.IntelligentDeviceConfigs] set TenancyId = '{tenancyId}' where EntityType = 'Apartment' and EntityId = '{apartmentId}' and Enabled = 1"; // 修改LoanRecords表商户Id string s14 = $"update dbo.[KC.Fengniaowu.Talos.LoanRecords] set AssetTenancyId = '{tenancyId}' where ApartmentId = '{apartmentId}' and Enabled = 1"; // 修改PromotionRecords表商户Id string s15 = $"update dbo.[KC.Fengniaowu.Talos.PromotionRecords] set TenancyId = '{tenancyId}', Content = json_modify(Content,'$.AssetTenancyId','{tenancyId}') where ApartmentId = '{apartmentId}' and Enabled = 1"; // 修改Repairs表商户Id string s16 = $"update dbo.[KC.Fengniaowu.Talos.Repairs] set AssetTenancyId = '{tenancyId}' where ApartmentId = '{apartmentId}' and Enabled = 1"; // 修改RoomMessages表商户Id string s17 = $"update dbo.[KC.Fengniaowu.Talos.RoomMessages] set AssetTenancyId = '{tenancyId}' where ApartmentId = '{apartmentId}' and Enabled = 1"; // 修改RoomReservations表商户Id string s18 = $"update dbo.[KC.Fengniaowu.Talos.RoomReservations] set AssetTenancyId = '{tenancyId}' where ApartmentId = '{apartmentId}' and Enabled = 1"; // 修改RoomSourceConfigs表商户Id string s19 = $"update dbo.[KC.Fengniaowu.Talos.RoomSourceConfigs] set AssetTenancyId = '{tenancyId}' where EntityType = 'Room' and EntityId in (select RoomId from dbo.[KC.Fengniaowu.Talos.Rooms] where ApartmentId = '{apartmentId}') and Enabled = 1"; // 修改RoomSourceReservations表商户Id string s20 = $"update dbo.[KC.Fengniaowu.Talos.RoomSourceReservations] set AssetTenancyId = '{tenancyId}' where ApartmentId = '{apartmentId}' and Enabled = 1"; // 修改RoomTypes表商户Id string s21 = $"update dbo.[KC.Fengniaowu.Talos.RoomTypes] set AssetTenancyId = '{tenancyId}' where ApartmentId = '{apartmentId}' and Enabled = 1"; // 修改StageOrders表商户Id string s22 = $"update dbo.[KC.Fengniaowu.Talos.StageOrders] set AssetTenancyId = '{tenancyId}' where ApartmentId = '{apartmentId}' and Enabled = 1"; // 修改StageOrdersFee表商户Id //string s23 = $"update dbo.[KC.Fengniaowu.Talos.StageOrdersFee] set AssetTenancyId = '{tenancyId}' where ApartmentId = '{apartmentId}' and Enabled = 1"; // 修改UtilityExpenses表商户Id string s24 = $"update dbo.[KC.Fengniaowu.Talos.UtilityExpenses] set AssetTenancyId = '{tenancyId}' where ApartmentId = '{apartmentId}' and Enabled = 1"; // 删除AccountApartments表记录 string s25 = $"update dbo.[KC.Fengniaowu.Talos.AccountApartments] set Enabled = 0 where ApartmentId = '{apartmentId}'"; // 修改ApplyMonthlyPayConfigs表商户Id string s26 = $"update dbo.[KC.Fengniaowu.Talos.ApplyMonthPayConfigs] set TenancyId = '{tenancyId}' where ApartmentId = '{apartmentId}' and Enabled = 1"; // 修改DeviceConsumptionInfos表商户Id string s27 = $"update dbo.[KC.Fengniaowu.Hebe.DeviceConsumptionInfos] set TenancyId = '{tenancyId}' where ApartmentId = '{apartmentId}' and Enabled = 1"; // 修改DeviceRechargeRecords表商户Id string s28 = $"update dbo.[KC.Fengniaowu.Hebe.DeviceRechargeRecords] set TenancyId = '{tenancyId}' where ApartmentId = '{apartmentId}' and Enabled = 1"; // 修改Devices表商户Id string s29 = $"update dbo.[KC.Fengniaowu.Hebe.Devices] set AssetTenancyId = '{tenancyId}' where ApartmentId = '{apartmentId}' and Enabled = 1"; // 给新商户管理添加公寓 Guid accountApartmentActorId = ID.NewSequentialGuid(); string s30 = $@"INSERT INTO [dbo].[KC.Fengniaowu.Talos.AccountApartments]([ActorId], [AccountApartmentId], [AccountId], [TenancyId], [ApartmentId], [Enabled], [CreateTime], [UpdateTime], [Data]) VALUES ('{accountApartmentActorId}', '{accountApartmentActorId.ToGuidString()}', '{account.AccountId}', '{tenancyId}', '{apartmentId}', '1', '{time}', '{time}', N'{{}}')"; // 修改房源表商户Id string s31 = $"update dbo.[KC.Fengniaowu.Ladon.Villages] set TenancyId = '{tenancyId}' where Enabled = 1 and ApartmentId = '{apartmentId}' or RelationIds = '{apartmentId}'"; // 修改VillageOrders表商户Id // 修改VillageContracts表商户Id string villageidsString = string.Empty; foreach (string villageId in villageIds) { villageidsString += $"'{villageId}',"; } string s32 = string.Empty; string s33 = string.Empty; if (villageidsString.Length > 0) { villageidsString.Remove(villageidsString.Length - 1); s32 = $"update dbo.[KC.Fengniaowu.Ladon.LandlordOrders] set TenancyId = '{tenancyId}' where Enabled = 1 and VillageId in ({villageidsString})"; s33 = $"update dbo.[KC.Fengniaowu.Ladon.LandlordContracts] set TenancyId = '{tenancyId}' where Enabled = 1 and VillageId in ({villageidsString})"; } List <string> sqls = new List <string> { s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18, s19, s20, s21, s22, s24, s25, s26, s27, s28, s29, s30, s31, s32, s33 }; // 执行SQL语句 SqlTransaction tran = connection.BeginTransaction(); try { foreach (string sql in sqls) { if (string.IsNullOrEmpty(sql)) { continue; } int rows = await connection.ExecuteAsync(sql, null, tran); //if (rows <= 0) //{ // tran.Rollback(); // return; //} } } catch (Exception e) { tran.Rollback(); MessageBox.Show($"公寓迁移失败,SQL执行异常。异常:{e.ToString()}"); return; } tran.Commit(); } //MessageBox.Show("公寓迁移成功"); /* 清除缓存 */ HttpClient httpClient = new HttpClient { BaseAddress = new Uri(Config.TalosBaseAddress) }; string sessionId = SessionIdHelper.SessionId; if (string.IsNullOrEmpty(sessionId)) { return; } httpClient.DefaultRequestHeaders.Add("X-KC-SID", sessionId); // 清除公寓表缓存 await ClearCacheAsync(httpClient, "api/Apartment/ClearCache", new { ApartmentId = apartmentId }); // 清除房间表缓存 using (SqlConnection connection = SqlConnectionExtensions.GetConnection()) { await connection.OpenAsync(); string ss1 = $"select RoomId from dbo.[KC.Fengniaowu.Talos.Rooms] where AssetTenancyId = '{tenancyId}' and Enabled = 1"; IEnumerable <string> roomIds = await connection.QueryAsync <string>(ss1); foreach (string roomId in roomIds) { await ClearCacheAsync(httpClient, "api/Room/ClearRoomCache", new { RoomId = roomId }); } } // 清除合同表缓存 using (SqlConnection connection = SqlConnectionExtensions.GetConnection()) { await connection.OpenAsync(); string ss2 = $"select ContractId from dbo.[KC.Fengniaowu.Talos.Contracts] where AssetTenancyId = '{tenancyId}' and Enabled = 1"; IEnumerable <string> contractIds = await connection.QueryAsync <string>(ss2); foreach (string contractId in contractIds) { await ClearCacheAsync(httpClient, "api/Contract/ClearCache", new { ContractId = contractId }); } } // 清除账单表缓存 using (SqlConnection connection = SqlConnectionExtensions.GetConnection()) { await connection.OpenAsync(); string ss3 = $"select OrderId from dbo.[KC.Fengniaowu.Talos.Orders] where AssetTenancyId = '{tenancyId}' and Enabled = 1"; IEnumerable <string> orderIds = await connection.QueryAsync <string>(ss3); List <object> contents = new List <object>(); foreach (string orderId in orderIds) { contents.Add(new { OrderId = orderId }); //await ClearCacheAsync(httpClient, "api/Order/ClearCache", new { OrderId = orderId }); } await ClearCachesAsync(httpClient, "api/Order/ClearCache", contents); } // 清除流水表缓存 using (SqlConnection connection = SqlConnectionExtensions.GetConnection()) { await connection.OpenAsync(); string ss4 = $"select TransactionId from dbo.[KC.Fengniaowu.Talos.Transactions] where AssetTenancyId = '{tenancyId}' and Enabled = 1"; IEnumerable <string> transactionIds = await connection.QueryAsync <string>(ss4); foreach (string transactionId in transactionIds) { await ClearCacheAsync(httpClient, $"api/Transaction/ClearCache?transactionId={transactionId}", null, "Get"); } } // 清除RoomReservations表缓存 using (SqlConnection connection = SqlConnectionExtensions.GetConnection()) { await connection.OpenAsync(); string ss5 = $"select RoomReservationId from dbo.[KC.Fengniaowu.Talos.RoomReservations] where AssetTenancyId = '{tenancyId}' and Enabled = 1"; IEnumerable <string> roomReservationIds = await connection.QueryAsync <string>(ss5); foreach (string roomReservationId in roomReservationIds) { await ClearCacheAsync(httpClient, "api/RoomReservation/ClearReservationCache", new { RoomReservationId = roomReservationId }); } } // 清除RoomSourceReservations表缓存 using (SqlConnection connection = SqlConnectionExtensions.GetConnection()) { await connection.OpenAsync(); string ss6 = $"select RoomSourceReservationId from dbo.[KC.Fengniaowu.Talos.RoomSourceReservations] where AssetTenancyId = '{tenancyId}' and Enabled = 1"; IEnumerable <string> roomSourceReservationIds = await connection.QueryAsync <string>(ss6); foreach (string roomSourceReservationId in roomSourceReservationIds) { await ClearCacheAsync(httpClient, "api/RoomSource/ClearReservationCache", new { RoomSourceReservationId = roomSourceReservationId }); } } // 清除UtilityExpenses表缓存 using (SqlConnection connection = SqlConnectionExtensions.GetConnection()) { await connection.OpenAsync(); string ss7 = $"select UtilityExpenseId from dbo.[KC.Fengniaowu.Talos.UtilityExpenses] where AssetTenancyId = '{tenancyId}' and Enabled = 1"; IEnumerable <string> utilityExpenseIds = await connection.QueryAsync <string>(ss7); foreach (string utilityExpenseId in utilityExpenseIds) { await ClearCacheAsync(httpClient, $"api/UtilityExpense/ClearUtilityExpenseCache?utilityExpenseId={utilityExpenseId}", null, "Get"); } } // 清除StageOrders表缓存 using (SqlConnection connection = SqlConnectionExtensions.GetConnection()) { await connection.OpenAsync(); string ss8 = $"select StageOrderId from dbo.[KC.Fengniaowu.Talos.StageOrders] where AssetTenancyId = '{tenancyId}' and Enabled = 1"; IEnumerable <string> stageOrderIds = await connection.QueryAsync <string>(ss8); foreach (string stageOrderId in stageOrderIds) { await ClearCacheAsync(httpClient, "api/StageOrder/ClearCache", new { StageOrderId = stageOrderId }); } } // 清除Devices表缓存 using (SqlConnection connection = SqlConnectionExtensions.GetConnection()) { await connection.OpenAsync(); string ss9 = $"select DeviceId from dbo.[KC.Fengniaowu.Hebe.Devices] where AssetTenancyId = '{tenancyId}' and Enabled = 1"; IEnumerable <string> deviceIds = await connection.QueryAsync <string>(ss9); foreach (string deviceId in deviceIds) { await ClearCacheAsync(httpClient, "api/IntelligentDevice/ClearDeviceCache", new { DeviceId = deviceId }); } } if (s_errorList.Count == 0) { MessageBox.Show("迁移成功"); } else { MessageBox.Show($"迁移失败,失败内容:{JsonConvert.SerializeObject(s_errorList)}"); } }
private async void btn_AddToAll_Click(object sender, EventArgs e) { string permissionIdString = rtb_PermissionIds.Text.Trim(); if (string.IsNullOrEmpty(permissionIdString)) { this.Show("权限Id不能为空"); return; } List <string> permissionIds = permissionIdString.Split(',').ToList(); if (permissionIds.Count == 0) { this.Show("权限Id不能为空"); return; } DialogResult dialogResult = this.Show("确定添加到所有用户吗", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); if (dialogResult == DialogResult.Cancel) { return; } using (SqlConnection connection = SqlConnectionExtensions.GetConnection()) { connection.Open(); foreach (string permissionId in permissionIds) { string sql1 = $"select * from dbo.[KC.Fengniaowu.Talos.Permissions] where Enabled = 1 and PermissionId = '{permissionId}'"; dynamic result = connection.QueryFirstOrDefault <dynamic>(sql1); if (result == null) { this.Show($"权限Id({permissionId})不存在"); return; } } } // 查询所有用户 string sql2 = "select * from dbo.[KC.Fengniaowu.Talos.Users] where Enabled = 1 and Permissions like (select '%'+PermissionId+'%' from dbo.[KC.Fengniaowu.Talos.Permissions] where PermissionCode = '*****@*****.**')"; dynamic users; using (SqlConnection connection = SqlConnectionExtensions.GetConnection()) { connection.Open(); users = connection.Query <dynamic>(sql2); } if (users == null) { this.Show("未找到用户"); return; } await AddPermissionsAsync(users, permissionIds); }
private async void btn_Unlock_Click(object sender, EventArgs e) { string cellphone = txb_Cellphone.Text.Trim(); if (string.IsNullOrEmpty(cellphone)) { MessageBox.Show("手机号不能为空"); return; } if (cellphone == "10100000000") { MessageBox.Show("该手机号无法解锁"); return; } // 通过手机号查询UserId string userId; using (SqlConnection connection = SqlConnectionExtensions.GetConnection()) { string sql = $"select UserId from dbo.[KC.Fengniaowu.Talos.Accounts] where Cellphone = '{cellphone}' and Enabled = 1"; userId = connection.QueryFirstOrDefault <string>(sql); } if (userId == null) { MessageBox.Show("解锁失败,手机号不存在"); return; } HttpClient httpClient = new HttpClient { BaseAddress = new Uri(Config.TalosBaseAddress) }; httpClient.DefaultRequestHeaders.Add("X-KC-SID", SessionIdHelper.SessionId); var content = new { UserId = userId }; HttpResponseMessage response = httpClient.PostAsJsonAsync("api/Password/Unlock", content).Result; if (!response.IsSuccessStatusCode) { MessageBox.Show($"解锁失败,解锁接口调用失败,HttpStatusCode:{response.StatusCode}"); return; } string responseString1 = await response.Content.ReadAsStringAsync(); JObject obj = JObject.Parse(responseString1); if ((bool)obj["succeeded"]) { MessageBox.Show("解锁成功"); return; } MessageBox.Show($"解锁失败,code:{obj["code"]},message:{obj["message"]}"); }
private void btn_Register_Click(object sender, EventArgs e) { DialogResult dialogResult = MessageBox.Show("您确定要注册商户吗", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); if (dialogResult == DialogResult.Cancel) { return; } string cellphone = txb_Cellphone.Text.Trim(); string license = txb_License.Text.Trim(); string domain = txb_Domain.Text.Trim(); string tenancyType = txb_TenancyType.Text.Trim(); string tenancyName = txb_TenancyName.Text.Trim(); string companyName = txb_CompanyName.Text.Trim(); string cityName = cmb_CityName.SelectedValue == null?cmb_CityName.Text.Trim() : cmb_CityName.SelectedValue.ToString(); string districtName = txb_DistrictName.Text.Trim(); string cuscc = txb_Cuscc.Text.Trim(); string accountName = txb_AccountName.Text.Trim(); string realName = txb_RealName.Text.Trim(); string credentialType = txb_CredentialType.Text.Trim(); string credentialNo = txb_CredentialNo.Text.Trim(); string userName = domain.Split('.').Last() + "Administrator"; string passwordHash = "AQAAAAEAACcQAAAAEMfdU3dK+R1uC7YkQ2exN/hJ7g6WJ+PN2Nvbr76BdVIVr69uVp85NgY1fVdNZ9dJXA=="; //默认密码111111 if (string.IsNullOrEmpty(cellphone)) { MessageBox.Show("Cellphone can not be null or empty."); return; } if (string.IsNullOrEmpty(license)) { MessageBox.Show("License can not be null or empty."); return; } if (license == "@xxx.com") { MessageBox.Show("请修改 License."); return; } if (string.IsNullOrEmpty(domain)) { MessageBox.Show("Domain can not be null or empty."); return; } if (domain == "@fengniaowu.tenancy.asset.xxx") { MessageBox.Show("请修改 Domain."); return; } if (string.IsNullOrEmpty(tenancyType)) { MessageBox.Show("TenancyType can not be null or empty."); return; } if (string.IsNullOrEmpty(tenancyName)) { MessageBox.Show("TenancyName can not be null or empty."); return; } if (string.IsNullOrEmpty(companyName)) { MessageBox.Show("CompanyName can not be null or empty."); return; } if (string.IsNullOrEmpty(cityName)) { MessageBox.Show("CityName can not be null or empty."); return; } if (string.IsNullOrEmpty(districtName)) { MessageBox.Show("DistrictName can not be null or empty."); return; } if (string.IsNullOrEmpty(cuscc)) { MessageBox.Show("Cuscc can not be null or empty."); return; } if (string.IsNullOrEmpty(accountName)) { MessageBox.Show("AccountName can not be null or empty."); return; } if (string.IsNullOrEmpty(realName)) { MessageBox.Show("RealName can not be null or empty."); return; } if (string.IsNullOrEmpty(credentialType)) { MessageBox.Show("CredentialType can not be null or empty."); return; } if (string.IsNullOrEmpty(credentialNo)) { MessageBox.Show("CredentialNo can not be null or empty."); return; } if (string.IsNullOrEmpty(userName)) { MessageBox.Show("UserName can not be null or empty."); return; } using (SqlConnection connection = SqlConnectionExtensions.GetConnection()) { connection.Open(); string sql1 = $"select Cellphone from dbo.[KC.Fengniaowu.Talos.Accounts] where Cellphone = '{cellphone}'"; string cellphone1 = connection.QueryFirstOrDefault <string>(sql1); if (!string.IsNullOrEmpty(cellphone1)) { MessageBox.Show($"Cellphone {cellphone} is exist."); return; } string sql2 = $"select TenancyId from dbo.[KC.Fengniaowu.Talos.Tenancies] where Enabled = 1 and (Domain = '{domain}' or License = '{license}')"; string tenancyId2 = connection.QueryFirstOrDefault <string>(sql2); if (!string.IsNullOrEmpty(tenancyId2)) { MessageBox.Show($"Domain {domain} or License {license} is exist."); return; } string sql3 = $"select CityId from dbo.[KC.Fengniaowu.Talos.Cities] where Enabled = 1 and CityName = '{cityName}'"; string existCityId = connection.QueryFirstOrDefault <string>(sql3); string sql5 = "select '\"' + PermissionId + '\"' as PermissionId, PermissionCode from dbo.[KC.Fengniaowu.Talos.Permissions] " + "where Enabled = 1"; List <Permission> permissions = connection.Query <Permission>(sql5).ToList(); List <string> permissionIds1 = permissions.FindAll(t => _permissionCodeCaiwu.Contains(t.PermissionCode)) .Select(t => t.PermissionId).ToList(); List <string> permissionIds2 = permissions.FindAll(t => t.PermissionCode != "AlphaAdministrator@fengniaowu" && t.PermissionCode != "*****@*****.**" && t.PermissionCode != "*****@*****.**") .Select(t => t.PermissionId).ToList(); List <string> permissionIds3 = permissions.FindAll(t => t.PermissionCode != "AlphaAdministrator@fengniaowu" && t.PermissionCode != "*****@*****.**") .Select(t => t.PermissionId).ToList(); DateTimeOffset time = Time.Now; string cityId = ID.NewSequentialGuid().ToGuidString(); string tenancyId = ID.NewSequentialGuid().ToGuidString(); string linkAddress = "http://www.fengniaowu.com/mobile/housessource.html?houselistId=" + tenancyId; string districtId = ID.NewSequentialGuid().ToGuidString(); string departmentId1 = ID.NewSequentialGuid().ToGuidString(); string departmentId2 = ID.NewSequentialGuid().ToGuidString(); string departmentId3 = ID.NewSequentialGuid().ToGuidString(); string departmentId4 = ID.NewSequentialGuid().ToGuidString(); string positionId1 = ID.NewSequentialGuid().ToGuidString(); string positionId2 = ID.NewSequentialGuid().ToGuidString(); string positionId3 = ID.NewSequentialGuid().ToGuidString(); string positionId4 = ID.NewSequentialGuid().ToGuidString(); string positionId5 = ID.NewSequentialGuid().ToGuidString(); string positionId6 = ID.NewSequentialGuid().ToGuidString(); string positionId7 = ID.NewSequentialGuid().ToGuidString(); string roleId1 = ID.NewSequentialGuid().ToGuidString(); string roleId2 = ID.NewSequentialGuid().ToGuidString(); string roleId3 = ID.NewSequentialGuid().ToGuidString(); string roleId4 = ID.NewSequentialGuid().ToGuidString(); List <string> roleIds = new List <string> { "\"" + roleId1 + "\"", "\"" + roleId2 + "\"", "\"" + roleId3 + "\"", "\"" + roleId4 + "\"" }; string userId = ID.NewSequentialGuid().ToGuidString(); string loginInfoId = ID.NewSequentialGuid().ToGuidString(); string accountId = ID.NewSequentialGuid().ToGuidString(); string digitalId1 = ID.NewSequentialGuid().ToGuidString(); string digitalId2 = ID.NewSequentialGuid().ToGuidString(); string digitalConfigId = ID.NewSequentialGuid().ToGuidString(); SqlTransaction tran = connection.BeginTransaction(); string s0 = null; if (string.IsNullOrEmpty(existCityId)) { s0 = $@"INSERT INTO [dbo].[KC.Fengniaowu.Talos.Cities]([ActorId], [CityId], [CityName], [Enabled], [CreateTime], [UpdateTime], [Data]) VALUES ('{cityId.ToGuid()}', '{cityId}', '{cityName}', '1', '{time}', '{time}', N'{{}}')"; } string s1 = $@"INSERT INTO [dbo].[KC.Fengniaowu.Talos.Tenancies]([ActorId], [TenancyId], [TenancyName], [Domain], [TenancyType], [CompanyName], [CredentialNo], [Enabled], [CreateTime], [UpdateTime], [Data], [License], [RoomSourcePromotionLinkAddress]) VALUES('{tenancyId.ToGuid()}', '{tenancyId}', '{tenancyName}', '{domain}', '{tenancyType}', '{companyName}', NULL, '1', '{time}', '{time}', N'{{}}', '{license}', '{linkAddress}')"; string s2 = $@"INSERT INTO [dbo].[KC.Fengniaowu.Talos.Districts]([ActorId], [DistrictId], [TenancyId], [CityName], [DistrictName], [Enabled], [CreateTime], [UpdateTime], [Data]) VALUES ('{districtId.ToGuid()}', '{districtId}', '{tenancyId}', '{cityName}', '{districtName}', '1', '{time}', '{time}', N'{{}}')"; string s3 = $@"INSERT INTO [dbo].[KC.Fengniaowu.Talos.Departments]([ActorId], [DepartmentId], [TenancyId], [DepartmentName], [Enabled], [CreateTime], [UpdateTime], [Data]) VALUES ('{departmentId1.ToGuid()}', '{departmentId1}', '{tenancyId}', N'IT', '1', '{time}', '{time}', N'{{}}')"; string s4 = $@"INSERT INTO [dbo].[KC.Fengniaowu.Talos.Departments]([ActorId], [DepartmentId], [TenancyId], [DepartmentName], [Enabled], [CreateTime], [UpdateTime], [Data]) VALUES ('{departmentId2.ToGuid()}', '{departmentId2}', '{tenancyId}', N'总经办', '1', '{time}', '{time}', N'{{}}')"; string s5 = $@"INSERT INTO [dbo].[KC.Fengniaowu.Talos.Departments]([ActorId], [DepartmentId], [TenancyId], [DepartmentName], [Enabled], [CreateTime], [UpdateTime], [Data]) VALUES ('{departmentId3.ToGuid()}', '{departmentId3}', '{tenancyId}', N'运营部', '1', '{time}', '{time}', N'{{}}')"; string s6 = $@"INSERT INTO [dbo].[KC.Fengniaowu.Talos.Departments]([ActorId], [DepartmentId], [TenancyId], [DepartmentName], [Enabled], [CreateTime], [UpdateTime], [Data]) VALUES ('{departmentId4.ToGuid()}', '{departmentId4}', '{tenancyId}', N'财务部', '1', '{time}', '{time}', N'{{}}')"; string s7 = $@"INSERT INTO [dbo].[KC.Fengniaowu.Talos.Positions]([ActorId], [PositionId], [TenancyId], [PositionName], [Enabled], [CreateTime], [UpdateTime], [Data]) VALUES ('{positionId1.ToGuid()}', '{positionId1}', '{tenancyId}', N'系统管理员', '1', '{time}', '{time}', N'{{}}')"; string s8 = $@"INSERT INTO [dbo].[KC.Fengniaowu.Talos.Positions]([ActorId], [PositionId], [TenancyId], [PositionName], [Enabled], [CreateTime], [UpdateTime], [Data]) VALUES ('{positionId2.ToGuid()}', '{positionId2}', '{tenancyId}', N'董事长', '1', '{time}', '{time}', N'{{}}')"; string s9 = $@"INSERT INTO [dbo].[KC.Fengniaowu.Talos.Positions]([ActorId], [PositionId], [TenancyId], [PositionName], [Enabled], [CreateTime], [UpdateTime], [Data]) VALUES ('{positionId3.ToGuid()}', '{positionId3}', '{tenancyId}', N'总经理', '1', '{time}', '{time}', N'{{}}')"; string s10 = $@"INSERT INTO [dbo].[KC.Fengniaowu.Talos.Positions]([ActorId], [PositionId], [TenancyId], [PositionName], [Enabled], [CreateTime], [UpdateTime], [Data]) VALUES ('{positionId4.ToGuid()}', '{positionId4}', '{tenancyId}', N'财务', '1', '{time}', '{time}', N'{{}}')"; string s11 = $@"INSERT INTO [dbo].[KC.Fengniaowu.Talos.Positions]([ActorId], [PositionId], [TenancyId], [PositionName], [Enabled], [CreateTime], [UpdateTime], [Data]) VALUES ('{positionId5.ToGuid()}', '{positionId5}', '{tenancyId}', N'店长管家', '1', '{time}', '{time}', N'{{}}')"; string s12 = $@"INSERT INTO [dbo].[KC.Fengniaowu.Talos.Positions]([ActorId], [PositionId], [TenancyId], [PositionName], [Enabled], [CreateTime], [UpdateTime], [Data]) VALUES ('{positionId6.ToGuid()}', '{positionId6}', '{tenancyId}', N'运营经理', '1', '{time}', '{time}', N'{{}}')"; string s13 = $@"INSERT INTO [dbo].[KC.Fengniaowu.Talos.Positions]([ActorId], [PositionId], [TenancyId], [PositionName], [Enabled], [CreateTime], [UpdateTime], [Data]) VALUES ('{positionId7.ToGuid()}', '{positionId7}', '{tenancyId}', N'其他', '1', '{time}', '{time}', N'{{}}')"; string s14 = $@"INSERT INTO [dbo].[KC.Fengniaowu.Talos.Roles]([ActorId], [RoleId], [RoleName], [Description], [Enabled], [Permissions], [CreateTime], [UpdateTime], [Data]) VALUES ('{roleId1.ToGuid()}', '{roleId1}', N'财务' + '{domain}', N'财务日常操作,财务包含数据导出权限', '1', N'[{string.Join(",", permissionIds1)}]', '{time}', '{time}', N'{{}}')"; string s15 = $@"INSERT INTO [dbo].[KC.Fengniaowu.Talos.Roles]([ActorId], [RoleId], [RoleName], [Description], [Enabled], [Permissions], [CreateTime], [UpdateTime], [Data]) VALUES ('{roleId2.ToGuid()}', '{roleId2}', N'店长' + '{domain}', N'管家日常管理,包括签约、续租、退租、账单', '1', N'[{string.Join(",", permissionIds2)}]', '{time}', '{time}', N'{{}}')"; string s16 = $@"INSERT INTO [dbo].[KC.Fengniaowu.Talos.Roles]([ActorId], [RoleId], [RoleName], [Description], [Enabled], [Permissions], [CreateTime], [UpdateTime], [Data]) VALUES ('{roleId3.ToGuid()}', '{roleId3}', N'管理层' + '{domain}', N'方便管理层数据监控、可以浏览所有权限', '1', N'[{string.Join(",", permissionIds2)}]', '{time}', '{time}', N'{{}}')"; string s17 = $@"INSERT INTO [dbo].[KC.Fengniaowu.Talos.Roles]([ActorId], [RoleId], [RoleName], [Description], [Enabled], [Permissions], [CreateTime], [UpdateTime], [Data]) VALUES ('{roleId4.ToGuid()}', '{roleId4}', N'IT管理' + '{domain}', N'负责平时系统管理,拥有大部分权限', '1', N'[{string.Join(",", permissionIds2)}]', '{time}', '{time}', N'{{}}')"; string s18 = $@"INSERT INTO [dbo].[KC.Fengniaowu.Talos.Users] ([ActorId], [UserId], [UserName], [Description], [Enabled], [Roles], [Permissions], [CreateTime], [UpdateTime], [Data]) VALUES ('{userId.ToGuid()}', '{userId}', '{userName}', N'Administrator', '1', N'[{string.Join(",", roleIds)}]', N'[{string.Join(",", permissionIds3)}]', '{time}', '{time}', N'{{}}')"; string s19 = $@"INSERT INTO [dbo].[KC.Fengniaowu.Talos.LoginInfos] ([LoginInfoId], [LoginInfoAccount], [LoginInfoType], [UserId], [Enabled], [CreateTime]) VALUES ('{loginInfoId.ToGuid()}', '{cellphone}', 'Cellphone', '{userId}', '1', '{time}')"; string s20 = $@"INSERT INTO [dbo].[KC.Fengniaowu.Talos.Accounts]([ActorId], [UserId], [AccountId], [TenancyId], [Cellphone], [AccountName], [AccountState], [AccountPhotoUrl], [CredentialType], [CredentialNo], [RealName], [Email], [DistrictId], [DepartmentId], [PositionId], [Enabled], [CreateTime], [UpdateTime], [Data]) VALUES ('{accountId.ToGuid()}', '{userId}', '{accountId}', '{tenancyId}', '{cellphone}', '{accountName}', N'Normal', N'https://kolibrestore.blob.core.chinacloudapi.cn/fengniaowu/talos/default_avatars/1.png', '{credentialType}', '{credentialNo}', '{realName}', NULL, '{districtId}', '{departmentId1}', '{positionId1}', '1', '{time}', '{time}', N'{{}}')"; string s21 = $@"INSERT INTO [dbo].[KC.Fengniaowu.Talos.PasswordLoginProviders] ([ActorId], [UserId], [PasswordHash], [LockoutEnd], [LockoutEnabled], [AccessFailedCount], [Enabled], [CreateTime], [UpdateTime], [Data]) VALUES ('{userId.ToGuid()}', '{userId}', '{passwordHash}', NULL, '1', '0', '1', '{time}', '{time}', N'{{}}')"; string temp22 = "{\"tenancyName\":\"" + companyName + "\",\"tenancyOrganizationNumber\":\"" + cuscc + "\"}"; string s22 = $@"INSERT INTO [dbo].[KC.Fengniaowu.Talos.DigitalContractConfigs]([DigitalContractConfigId], [Name], [TemplateType], [Description], [RequestParameters], [HtmlContentUrl], [Enabled], [CreateTime], [UpdateTime], [Data]) VALUES ('{digitalId1}', N'居住房屋租赁合同', N'TongYongZuFang', N'', '{temp22}', N'https://kolibrestore.blob.core.chinacloudapi.cn/public/uploads/apartment/digitalcontract/templates/tongyongzufang_20180505.html', '1', '{time}', '{time}', N'{{}}')"; string s23 = $@"INSERT INTO [dbo].[KC.Fengniaowu.Talos.DigitalContractConfigs]([DigitalContractConfigId], [Name], [TemplateType], [Description], [RequestParameters], [HtmlContentUrl], [Enabled], [CreateTime], [UpdateTime], [Data]) VALUES ('{digitalId2}', N'补充协议', N'RentSupplementaryAgreement', N'', '{temp22}', N'https://kolibrestore.blob.core.chinacloudapi.cn/public/uploads/apartment/digitalcontract/templates/buchong.html', '1', '{time}', '{time}', N'{{}}')"; string temp24 = "[[\"" + digitalId1 + "\"],[\"" + digitalId2 + "\"]]"; string s24 = $@"INSERT INTO [dbo].[KC.Fengniaowu.Talos.DigitalContractRelationConfigs]([DigitalContractRelationConfigId], [EntityType], [EntityId], [ConfigContent], [Enabled], [CreateTime], [UpdateTime], [Data], [ContractProcess]) VALUES ('{digitalConfigId}', N'Tenancy', '{tenancyId}', '{temp24}', '1', '{time}', '{time}', N'{{}}', N'Sign')"; Dictionary <string, string> tempDic = new Dictionary <string, string> { { "s0", s0 }, { "s1", s1 }, { "s2", s2 }, { "s3", s3 }, { "s4", s4 }, { "s5", s5 }, { "s6", s6 }, { "s7", s7 }, { "s8", s8 }, { "s9", s9 }, { "s10", s10 }, { "s11", s11 }, { "s12", s12 }, { "s13", s13 }, { "s14", s14 }, { "s15", s15 }, { "s16", s16 }, { "s17", s17 }, { "s18", s18 }, { "s19", s19 }, { "s20", s20 }, { "s21", s21 }, { "s22", s22 }, { "s23", s23 }, { "s24", s24 } }; // 执行SQL语句 try { foreach (KeyValuePair <string, string> kv in tempDic) { if (string.IsNullOrEmpty(kv.Value)) { continue; } int rows = connection.Execute(kv.Value, null, tran); if (rows <= 0) { tran.Rollback(); ShowRegisterErrorMsg(kv.Key); return; } } } catch (Exception) { tran.Rollback(); MessageBox.Show("注册商户失败,SQL执行异常"); return; } tran.Commit(); MessageBox.Show("注册成功"); } }