public override void Execute(object parameter) { DatabaseConfigModel dbConfig = NetworkingViewModel.DatabaseConfigModel; bool isSuccess = false; try { DatabaseEnum databaseEnum = DataBaseSoft.TransDatabaseSoft(dbConfig.DatabaseSoft, dbConfig.IsAdvancedSetting); isSuccess = DatabaseHelper.TestConnection(databaseEnum, dbConfig.ConnectionString); } catch (Exception ex) { MessageBox.Show(ex.Message, "错误", MessageBoxButton.OK, MessageBoxImage.Error); return; } if (isSuccess) { MessageBox.Show("连接测试成功!"); } }
public override void Execute(object parameter) { PatientMapModel pmm = NetworkingViewModel.PatientMapModel; try { DatabaseConfigModel dataConfig = NetworkingViewModel.DatabaseConfigModel; string sql = pmm.GetTestPatientInfoSql(dataConfig.DatabaseSoft); DatabaseEnum databaseEnum = DataBaseSoft.TransDatabaseSoft(dataConfig.DatabaseSoft, dataConfig.IsAdvancedSetting); IDatabaseHelper dbHelper = DatabaseHelper.Open(databaseEnum, dataConfig.ConnectionString); DataTable table = dbHelper.ExecuteQuery(sql); } catch (Exception ex) { MessageBox.Show(ex.Message); return; } MessageBox.Show("目标表与字段测试成功!"); }
protected override void ConfigClient() { try { base.ConfigClient(); if (Config == null) { ClientHelper.TraceException("DBClient.ConfigClient", "未能成功加载数据库联网方式联网配置文件", "_config为Null"); } _dbConfig = Config.DatabaseConfigModel; if (_dbConfig == null) { ClientHelper.TraceException("DBClient.ConfigClient", "未能成功加载数据库联网方式联网配置文件", "DatabaseConfigModel为Null"); } _connStr = _dbConfig.ConnectionString; DatabaseEnum databaseEnum = DataBaseSoft.TransDatabaseSoft(_dbConfig.DatabaseSoft, _dbConfig.IsAdvancedSetting); _dbHelper = DatabaseHelper.Open(databaseEnum, _connStr); } catch (KRException ex) { throw new Exception("加载联网配置失败"); } }
public override void Execute(object parameter) { try { DatabaseConfigModel dbConfig = NetworkingViewModel.DatabaseConfigModel; DatabaseEnum databaseEnum = DataBaseSoft.TransDatabaseSoft(dbConfig.DatabaseSoft, dbConfig.IsAdvancedSetting); IDatabaseHelper db = DatabaseHelper.Open(databaseEnum, dbConfig.ConnectionString); ; string sql = null; if (dbConfig.DatabaseSoft == DatabaseSoft.SQLServer) { sql = "select name from sys.databases"; } else if (dbConfig.DatabaseSoft == DatabaseSoft.MySql) { sql = " SHOW DATABASES "; } else if (dbConfig.DatabaseSoft == DatabaseSoft.PostgreSQL) { sql = "SELECT datname FROM pg_database"; } if (sql == null) { return; } DataTable table = db.ExecuteQuery(sql); if (table == null) { return; } var list = new ObservableCollection <string>(); EnumerableRowCollection <string> en = null; if (table.Columns.Contains("datname")) { en = table.AsEnumerable().Select(r => r["datname"].ToString()); } else if (table.Columns.Contains("name")) { en = table.AsEnumerable().Select(r => r["name"].ToString()); } else { en = table.AsEnumerable().Select(r => r["Database"].ToString()); } foreach (string str in en) { if (string.IsNullOrEmpty(str)) { continue; } list.Add(str); } NetworkingViewModel.DatabaseList = list; } catch (Exception ex) { MessageBox.Show(ex.Message); } }
public override void Execute(object parameter) { DatabaseConfigModel dbConfig = NetworkingViewModel.DatabaseConfigModel; DataCallBackModel dcModel = NetworkingViewModel.DataCallBackModel; DatabaseEnum databaseEnum = DataBaseSoft.TransDatabaseSoft(dbConfig.DatabaseSoft, dbConfig.IsAdvancedSetting); IDatabaseHelper db = DatabaseHelper.Open(databaseEnum, dbConfig.ConnectionString); ; string tableName = string.Empty; if (dcModel.CallbackType == "表") { tableName = dcModel.TargetTableName; } else if (dcModel.CallbackType == "存储过程") { tableName = dcModel.TargetProcName; } if (string.IsNullOrEmpty(tableName)) { return; } string sql = string.Empty; if (dbConfig.DatabaseSoft == DatabaseSoft.SQLServer) { sql = string.Format( "SELECT A.NAME,B.NAME AS TYPE,A.LENGTH,A.ISNULLABLE FROM SYSCOLUMNS A,SYSTYPES B,SYSOBJECTS D WHERE A.XTYPE=B.XUSERTYPE AND A.ID=D.ID AND A.ID =OBJECT_ID('{0}')", tableName); } else if (dbConfig.DatabaseSoft == DatabaseSoft.Oracle) { if (dcModel.CallbackType == "表") { sql = string.Format( "SELECT A.COLUMN_NAME AS NAME,A.DATA_TYPE AS TYPE,A.DATA_LENGTH AS LENGTH,A.NULLABLE AS ISNULLABLE FROM USER_TAB_COLS A WHERE UPPER(A.TABLE_NAME) = '{0}'", tableName.ToUpper()); } else { sql = string.Format( "SELECT A.ARGUMENT_NAME AS NAME,A.DATA_TYPE AS TYPE,NVL(A.DATA_LENGTH,0) AS LENGTH, 0 AS ISNULLABLE FROM USER_ARGUMENTS A WHERE UPPER(A.OBJECT_NAME)='{0}' ORDER BY SEQUENCE", tableName.ToUpper()); } } else if (dbConfig.DatabaseSoft == DatabaseSoft.PostgreSQL) { sql = string.Format( "select a.column_name as Name, a.udt_name as TYPE,a.character_maximum_length as LENGTH, a.is_nullable as ISNULLABLE from information_schema.columns a where table_schema='public' and table_name='{0}'", tableName); } else { if (dcModel.CallbackType == "表") { sql = string.Format( "SELECT A.COLUMN_NAME AS NAME, A.DATA_TYPE TYPE,A.COLUMN_TYPE AS LENGTH,A.IS_NULLABLE AS ISNULLABLE FROM INFORMATION_SCHEMA.COLUMNS A WHERE A.TABLE_SCHEMA = '{0}' AND A.TABLE_NAME = '{1}'", dbConfig.Database, tableName); } else { sql = string.Format( "SELECT DB, TYPE, SPECIFIC_NAME, PARAM_LIST, RETURNS FROM MYSQL.PROC A WHERE UPPER(A.SPECIFIC_NAME) = '{0}'", tableName.ToUpper()); } } DataTable table = db.ExecuteQuery(sql); dcModel.CallbackTabelMap.Clear(); if (!(dbConfig.DatabaseSoft == DatabaseSoft.MySql && dcModel.CallbackType == "存储过程")) { var regex = new Regex(@"^\d*$"); foreach (DataRow row in table.AsEnumerable()) { string name = row["NAME"].ToString(); if (string.IsNullOrEmpty(name)) { continue; } int size = -1; string length = row["LENGTH"].ToString(); Match match = regex.Match(length); if (match.Success && !string.IsNullOrEmpty(match.Value)) { size = Convert.ToInt32(match.Value); } var tfmm = new TableFieldMapModel(); tfmm.LocalField = row["NAME"].ToString(); tfmm.Type = row["TYPE"].ToString(); tfmm.TargetField = ""; tfmm.Size = size; dcModel.CallbackTabelMap.Add(tfmm); } } else { DataRow dataRow = table.AsEnumerable().FirstOrDefault(); if (dataRow != null) { var parambytes = dataRow["PARAM_LIST"] as byte[]; var ue = new ASCIIEncoding(); string paramList = ue.GetString(parambytes); if (!string.IsNullOrEmpty(paramList)) { string[] paraml = paramList.Split(new string[1] { "," }, StringSplitOptions.RemoveEmptyEntries); foreach (string param in paraml) { string value = param.Trim(); if (value.StartsWith("OUT")) { continue; } string[] values = value.Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries); string name = string.Empty; string type = string.Empty; if (value.StartsWith("IN")) { name = values[1]; type = values[2]; } else { name = values[0]; type = values[1]; } var tfmm = new TableFieldMapModel(); tfmm.LocalField = name; tfmm.Type = type; tfmm.TargetField = ""; tfmm.Size = 0; dcModel.CallbackTabelMap.Add(tfmm); } } } } //NetworkingViewModel.TargetFieldList = list; }
public override void Execute(object parameter) { DatabaseConfigModel dbConfig = NetworkingViewModel.DatabaseConfigModel; DatabaseEnum databaseEnum = DataBaseSoft.TransDatabaseSoft(dbConfig.DatabaseSoft, dbConfig.IsAdvancedSetting); IDatabaseHelper db = DatabaseHelper.Open(databaseEnum, dbConfig.ConnectionString); if (string.IsNullOrEmpty(dbConfig.User) || string.IsNullOrEmpty(dbConfig.Password)) { return; } string sql = null; string tableName = NetworkingViewModel.PatientMapModel.PatientTableName; if (string.IsNullOrEmpty(tableName)) { return; } if (dbConfig.DatabaseSoft == DatabaseSoft.SQLServer) { sql = string.Format( "select a.name as ColumnName,b.name as type,a.length,a.isnullable from syscolumns a,systypes b,sysobjects d where a.xtype=b.xusertype and a.id=d.id and a.id =object_id('{0}')", tableName); } else if (dbConfig.DatabaseSoft == DatabaseSoft.Oracle) { sql = string.Format( "SELECT A.TABLE_NAME as TableName,A.COLUMN_NAME as ColumnName,A.DATA_TYPE as type,A.DATA_LENGTH as length FROM USER_TAB_COLS A where A.TABLE_NAME = '{0}'", tableName.ToUpper()); } else if (dbConfig.DatabaseSoft == DatabaseSoft.PostgreSQL) { sql = string.Format( "select a.column_name as ColumnName, a.udt_name as type,a.character_maximum_length as length, a.is_nullable as isnullable from information_schema.columns a where table_name='{0}'", tableName); } else { sql = string.Format( "Select A.COLUMN_NAME as ColumnName, A.DATA_TYPE TYPE,A.COLUMN_TYPE as LENGTH,A.IS_NULLABLE as ISNULLABLE FROM INFORMATION_SCHEMA.COLUMNS A Where A.table_schema = '{0}' AND A.table_name = '{1}'", dbConfig.Database, tableName); } DataTable table = db.ExecuteQuery(sql); var list = new ObservableCollection <string>(); foreach (DataRow row in table.AsEnumerable()) { string name = row["ColumnName"].ToString(); if (string.IsNullOrEmpty(name)) { continue; } list.Add(string.Format("[{0}]", name)); } NetworkingViewModel.TargetFieldList = list; }
public bool SaveCallBackData(RenderTargetBitmap pBitmap = null) { var config = KRNetworkingConfig.Config; var dbConfig = config.DatabaseConfigModel; if (config.DataCallBackModel.CallbackType == "无") { return(true); } var sqlandParam = config.DataCallBackModel.GetSqlStringByParam(dbConfig.DatabaseSoft); foreach (var p in sqlandParam.Parameters) { try { object value = null; var upperKey = p.Key.ToUpper(); switch (upperKey) { case "<IMAGE>": if (pBitmap != null) { var encoder = GetPic(pBitmap); using (var memoryStream = new MemoryStream()) { encoder.Save(memoryStream); var bytes = memoryStream.ToArray(); value = bytes; p.Parameter.Size = bytes.Length; } } break; case "<IMAGEPATH>": if (!string.IsNullOrEmpty(_fullPath)) { if (config.ReportSaveModel.ReportSaveType == "FTP") { var ftpadress = config.ReportSaveModel.FtpAdresse; var adress = _fullPath.Replace("\\", "/"); var len = ftpadress.Length; value = adress.Substring(len); p.Parameter.Size = _fullPath.Length - len; } else { value = _fullPath.Replace("\\", "/"); p.Parameter.Size = _fullPath.Length; } } break; default: //if (_row.Table.Columns.Contains(p.Key)) //{ //var rowValue = _row[p.Key]; //if (p.Key.ToUpper() == "CHECKTYPE") //{ // CheckType cy = CheckType.ABIPWV; // var isSucc = Enum.TryParse<CheckType>(rowValue.ToString(), true, out cy); // if (isSucc) // { // rowValue = KRNetworkingConfig.Config.PatientMapModel.GetTargetCheckByCheckType(cy); // } //} //else //{ var rowValue = GetSquareValue(p.Key); //} value = rowValue; if (p.Key.ToUpper() == "[GENDER]") { if (rowValue == "0" || rowValue == "男") { value = "男"; } else { value = "女"; } } //} //else //{ //} break; } if (string.IsNullOrEmpty(value?.ToString())) { value = DBNull.Value; } if (dbConfig.DatabaseSoft == DatabaseSoft.PostgreSQL) { var para = p.Parameter as NpgsqlParameter; if (para == null) { continue; } if (para.NpgsqlDbType == NpgsqlDbType.Date || para.NpgsqlDbType == NpgsqlDbType.Timestamp) { p.Parameter.Value = Convert.ToDateTime(value.ToString()); } else { p.Parameter.Value = value; } } else { p.Parameter.Value = value; } } catch (Exception ex) { ClientHelper.TraceException("KRNetworkingHelper.SaveCallBackData", "数据映射失败", ex.Message); } } var dbHelper = DatabaseHelper.Open(DataBaseSoft.TransDatabaseSoft(dbConfig.DatabaseSoft, dbConfig.IsAdvancedSetting), config.DatabaseConfigModel.ConnectionString); var parameters = new DbParameter[sqlandParam.Parameters.Count]; for (var i = 0; i < parameters.Length; i++) { parameters[i] = sqlandParam.Parameters[i].Parameter; } var result = -1; try { if (config.DataCallBackModel.CallbackType == "表" && config.DataCallBackModel.TargetTableUpdateType == "更新") { result = dbHelper.ExecuteNonQuery(sqlandParam.UpdateSql, parameters); } if (result <= 0) { result = dbHelper.ExecuteNonQuery(sqlandParam.InsertSql, parameters); } if (config.DataCallBackModel.CallbackType == "存储过程") { result++; } } catch (Exception ex) { ClientHelper.TraceException("KRNetworkingHelper.SaveCallBackData", "数据回写失败", ex.Message); } return(result > 0); }