static void Main() { string serverName = TrasenClasses.GeneralClasses.ApiFunction.GetIniString("SERVER_NAME", "NAME", Constant.ApplicationDirectory + "\\ClientConfig.ini"); if (serverName == "") { System.Windows.Forms.MessageBox.Show("ClientConfig.ini中[SERVER_NAME]的NAME未设置,请启动配置程序并设置当前服务器", "错误"); return; } //string filename = Constant.ApplicationDirectory + " \\" + string.Format("{0:yyyyMMdd}", DateTime.Now) + ".txt"; RelationalDatabase database = null; database = new MsSqlServer(); string connectionString = WorkStaticFun.GetConnnectionString(ConnectionType.SQLSERVER, serverName); database.Initialize(connectionString); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new FrmServer(database)); }
public override bool TestConfig(string[] args) { RelationalDatabase db = new MsSqlServer(); try { string connectionString = "packet size=4096;user id={0};password={1};data source={2};persist security info=True;initial catalog={3}"; db.Initialize(string.Format(connectionString, args[2], args[3], args[0], args[1])); db.Open(); db.Close(); return(true); } catch (Exception error) { return(false); } finally { db.Dispose(); db = null; } }
public static TrasenClasses.DatabaseAccess.RelationalDatabase GetDb() { //string serverName = "mydb_svr"; //string cfgPath = ServerVariable.ConfigFilePath; //serverName = TrasenClasses.GeneralClasses.ApiFunction.GetIniString("SERVER_NAME", "NAME", cfgPath); //if (serverName == "") //{ // string errmsg = "ClientConfig.ini中[SERVER_NAME]的NAME未设置,请启动配置程序并设置当前服务器"; // throw new Exception(errmsg); //} //string connectionString = BaseDal.GetConnnectionString(cfgPath, ConnectionType.SQLSERVER, serverName); string connectionString = "packet size=4096;user id=sa;password=1;data source=192.168.0.92;persist security info=True;initial catalog=trasen"; TrasenFrame.Forms.FrmMdiMain.Jgbm = 1001; TrasenFrame.Forms.FrmMdiMain.CurrentDept = new Department(); TrasenFrame.Forms.FrmMdiMain.CurrentUser = new User(); RelationalDatabase db = new MsSqlServer(); db.Initialize(connectionString); return(db); }
/// <summary> /// 更新当前界面的显示 返回当前呼叫信息 /// </summary> /// <param name="text"></param> public static string UpdateDisplay(object data, int zqid, RelationalDatabase _DataBase) { string values = ""; try { RelationalDatabase db1 = new MsSqlServer(); db1.Initialize(_DataBase.ConnectionString); //更新医生呼叫情况的显示DisplayAreaDoctorCallInfo(); if (data != null && data.GetType() == typeof(System.String)) { values = (data.ToString() + "\r\n"); } if (data != null && data.GetType() == typeof(ts_mzys_class.MZHS_FZJL)) { ts_mzys_class.MZHS_FZJL patient = (ts_mzys_class.MZHS_FZJL)data; //设置呼叫列表 Modify By zp 2014-06-14 string zs = patient.roomName; if (_cfg3117.Config.Trim() == "1") { zs = patient.Patzjjc; } values = string.Format("{0}:请{1}号{2}到{3}{4}就诊", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), patient.Patdlxh, patient.patName, patient.patGHZKName, zs); if (new SystemCfg(3013).Config == "1") { values = string.Format("{0}:请{1}号{2}到{3}的{4}就诊", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), patient.Pdxh, patient.patName, patient.patGHZKName, zs); } } //重新获取未分诊的病人,并将列表送到显示屏 if (refreshScreenDisplay != null) { string rq1 = DateManager.ServerDateTimeByDBType(_DataBase).ToShortDateString() + " 00:00:00"; string rq2 = DateManager.ServerDateTimeByDBType(_DataBase).ToShortDateString() + " 23:59:59"; int klx = 0; string kh = ""; string blh = ""; int sort = 0; int hour = Convert.ToInt32(_DataBase.GetDataResult("select DATEPART(hh, GETDATE())")); //从后台参数获取时间段进行判断 Modify By Zp 2014-02-11 //if (hour >= 8 && hour < 12) // sort = 1; //else if (hour >= 12 && hour < 18) // sort = 2; DataSet ds = MZHS_FZJL.Select_yfzpat(zqid, rq1, rq2, klx, kh, blh, sort, db1); //包含两个内存表1个预约病人列表1个现场病人列表 List <MZHS_FZJL> _list = new List <MZHS_FZJL> (); foreach (DataRow dr in ds.Tables[0].Rows) { MZHS_FZJL fz_br = MZHS_FZJL.DataRowToFZjl(dr); _list.Add(fz_br); } refreshScreenDisplay(data, _list); //传给显示屏已分诊病人信息 } } catch (Exception ea) { throw new Exception("UpdateDisplay函数出现异常!原因:" + ea.Message); } return(values); }
/// <summary> /// 监听端口 有数据传输则刷新显示屏以及语音朗诵 /// </summary> /// <param name="port">端口号</param> public void SocketListen(int port, RelationalDatabase _DataBase, Fz_Zq zq, Socket listener, VoiceHelp _voice, ref Socket socket) { RelationalDatabase db1 = new MsSqlServer(); db1.Initialize(_DataBase.ConnectionString); string rq1 = DateManager.ServerDateTimeByDBType(db1).ToShortDateString() + " 00:00:00"; db1.Close(); db1.Dispose(); RelationalDatabase db2 = new MsSqlServer(); db2.Initialize(_DataBase.ConnectionString); string rq2 = DateManager.ServerDateTimeByDBType(db2).ToShortDateString() + " 23:59:59"; db2.Close(); db2.Dispose(); Hjcs = int.Parse(zq.Zqhjcs); string msg = ""; _voice.InitializeVoiceLib(); _voice.VoiceSpeak(zq.Zqname, ref msg); IPEndPoint address = new IPEndPoint(IPAddress.Any, port); while (true) { try { if (new SystemCfg(3103).Config == "1") { UpdateDisplayDelegate callDisplay = new UpdateDisplayDelegate(UpdateDisplay); callDisplay("正在等待呼叫。。。", zq.Zqid, _DataBase); } if (listener != null) { if (listener.LocalEndPoint == null) { listener.Bind(address); } } listener.Listen(0); socket = listener.Accept(); Stream netStream = new NetworkStream(socket); StreamReader reader = new StreamReader(netStream); string result = reader.ReadToEnd();//收到呼叫的信息 lock (objLockHelper) { ts_mzys_class.MZHS_FZJL p = new ts_mzys_class.MZHS_FZJL(); System.Xml.XmlDocument doc = new System.Xml.XmlDocument(); bool valid = false; try { doc.LoadXml(result); valid = true; } catch { UpdateDisplayDelegate _callDisplay = new UpdateDisplayDelegate(UpdateDisplay); _callDisplay("无效的呼叫信息!", zq.Zqid, _DataBase); } if (valid) { System.Xml.XmlNodeList nodes = doc.GetElementsByTagName("PATIENT")[0].ChildNodes; /*反射生成病人对象*/ foreach (System.Xml.XmlNode node in nodes) { try { System.Reflection.PropertyInfo pi = p.GetType().GetProperty(node.Name); //定义一个属性对象,并且设置类型(需要反射目的对象的某个属性名称) object objValue = Convert.ChangeType(node.InnerText, pi.PropertyType); //通过一个object对象获取属性的值与属性的类型 p.GetType().GetProperty(node.Name).SetValue(p, objValue, null); //对反射对象进行赋值,第一个参数为反射对象,第二参数为反射对象所需的值与类型信息 } catch { continue; } } lstCalledPatient.Insert(0, p); //将当前呼叫的病人发送到显示窗口 if (refreshScreenDisplay != null) { int sort = 0; RelationalDatabase dbTemp = new MsSqlServer(); dbTemp.Initialize(_DataBase.ConnectionString); int hour = Convert.ToInt32(dbTemp.GetDataResult("select DATEPART(hh, GETDATE())")); dbTemp.Close(); dbTemp.Dispose(); if (hour >= 8 && hour <= 12) { sort = 1; } else if (hour > 12 && hour < 18) { sort = 2; } RelationalDatabase dbTemp2 = new MsSqlServer(); dbTemp2.Initialize(_DataBase.ConnectionString); DataSet ds = MZHS_FZJL.Select_yfzpat(zq.Zqid, rq1, rq2, 0, "", "", sort, dbTemp2);//得到最新的候诊列表 dbTemp2.Close(); dbTemp2.Dispose(); List <MZHS_FZJL> _list = new List <MZHS_FZJL>(); foreach (DataRow dr in ds.Tables[0].Rows) { _list.Add(MZHS_FZJL.DataRowToFZjl(dr)); } refreshScreenDisplay(p, _list); } CallPatient(lstCalledPatient); } } } catch (Exception ea) { writelog("SocketListen方法发生错误:" + ea.Message); } } }