Beispiel #1
0
        public static DatabaseConfigClass GetSqlServerServerConfig()
        {
            if (datavbaseConfig != null)
            {
                return(datavbaseConfig);
            }
            DatabaseConfigClass configCls = DatabaseConfigClass.GetConfig("SqlServerConnectString");

            return(configCls);
        }
Beispiel #2
0
        public DatabaseConfigClass GetInputConfig()
        {
            DatabaseConfigClass config = new DatabaseConfigClass();

            config.serverName = tbServerName.Text.Trim();
            config.verType    = cbVerType.SelectedIndex;
            config.user       = tbUser.Text.Trim();
            config.pwd        = tbPwd.Text;
            config.database   = tbDatabase.Text.Trim();
            return(config);
        }
Beispiel #3
0
 private void FrmMain_Load(object sender, EventArgs e)
 {
     /*CtrlWaiting waiting = new CtrlWaiting("权限加载中...",() =>
      * {
      *  try
      *  {
      *      PrivateMgr.LoadPrivates();
      *  }
      *  catch (Exception ex)
      *  {
      *      WinInfoHelper.ShowInfoWindow(this, "权限加载异常:"+ex.Message);
      *  }
      *
      * });
      * waiting.ShowDialog(this);*/
     try
     {
         tsslStateUser.Text = UserInfoHelper.UserInfo.USER_NAME;
         DatabaseConfigClass config = SysConfig.GetSqlServerServerConfig();
         if (config != null)
         {
             tsmiServerIp.Text = config.serverName;
         }
     }
     catch (Exception ex)
     {
         log.Error("读取配置异常:", ex);
     }
     smtNavigate.Main = this;
     try
     {
         if (PrivateMgr.FUN_POINTS.Contains(SYS_FUN_POINT.REAL_ALARM_DETECT))
         {
             Maticsoft.BLL.SMT_DATADICTIONARY_INFO dicBll = new Maticsoft.BLL.SMT_DATADICTIONARY_INFO();
             var configs = dicBll.GetModelList("DATA_TYPE='ALARM_INFO' and DATA_KEY='ALARM_SERVER'");
             if (configs.Count > 0)
             {
                 log.Info("报警服务器地址为:" + configs[0].DATA_VALUE);
                 consumerClient = new ConsumerClient(configs[0].DATA_VALUE);
                 consumerClient.MessageRecieved += consumerClient_MessageRecieved;
                 consumerClient.Start();
             }
             else
             {
                 log.Error("没有报警服务器地址,请在数据库中配置报警服务地址!其中 DATA_TYPE='ALARM_INFO' and DATA_KEY='ALARM_SERVER' DATA_VALUE为配置值,如:192.168.1.1:56010");
             }
         }
     }
     catch (Exception ex)
     {
         log.Error("报警接收初始化异常:", ex);
     }
 }
Beispiel #4
0
 /// <summary>
 /// 获取Sql Server数据库连接
 /// </summary>
 /// <returns></returns>
 public static string GetSqlServerConnectString()
 {
     if (datavbaseConfig != null)
     {
         return(datavbaseConfig.ToString());
     }
     datavbaseConfig = GetSqlServerServerConfig();
     if (datavbaseConfig == null)
     {
         return(null);
     }
     return(datavbaseConfig.ToString());
 }
Beispiel #5
0
        private void FrmDataBaseConfig_Load(object sender, EventArgs e)
        {
            DatabaseConfigClass config = SysConfig.GetSqlServerServerConfig();

            if (config == null)
            {
                return;
            }
            tbServerName.Text       = config.serverName;
            cbVerType.SelectedIndex = config.verType;
            tbUser.Text             = config.user;
            tbPwd.Text      = config.pwd;
            tbDatabase.Text = config.database;
        }
Beispiel #6
0
        private void DoCreateDataBase(DatabaseConfigClass config = null, bool isUpdate = false)
        {
            config.database = "master";
            string sqlstring   = config.ToString();
            string createDBSql = GetFileSql("smartaccess_createall.sql");
            // string createDBSqlIms = GetFileSql("smartaccess_imscreate.sql");

            string beforeDBSql = GetFileSql("smartaccess_before.sql");
            string updateDBSql = GetFileSql("smartaccess_update.sql");
            string dataDBSql   = GetFileSql("smartaccess_data.sql");

            using (SqlConnection conn = DatabaseHelper.ConnectDatabase(sqlstring))
            {
                List <string> sqlList = new List <string>();
                if (isUpdate)
                {
                    var updateList = updateDBSql.Split(new string[] { "GO\r" }, StringSplitOptions.RemoveEmptyEntries);
                    var dataList   = dataDBSql.Split(new string[] { "GO\r" }, StringSplitOptions.RemoveEmptyEntries);
                    sqlList.AddRange(updateList);
                    sqlList.AddRange(dataList);
                }
                else
                {
                    var beforeList = beforeDBSql.Split(new string[] { "GO\r" }, StringSplitOptions.RemoveEmptyEntries);
                    var list       = createDBSql.Split(new string[] { "GO\r" }, StringSplitOptions.RemoveEmptyEntries);
                    //var listIms = createDBSqlIms.Split(new string[] { "GO\r" }, StringSplitOptions.RemoveEmptyEntries);
                    var dataList = dataDBSql.Split(new string[] { "GO\r" }, StringSplitOptions.RemoveEmptyEntries);
                    sqlList.AddRange(beforeList);
                    sqlList.AddRange(list);
                    //sqlList.AddRange(listIms);
                    sqlList.AddRange(dataList);
                }
                using (SqlCommand command = conn.CreateCommand())
                {
                    command.CommandType = System.Data.CommandType.Text;
                    command.CommandText = "select filename from sysdatabases where name='master'";//查询数据库路径
                    SqlDataReader reader = command.ExecuteReader();
                    if (!reader.Read())
                    {
                        throw new Exception("数据库创建失败,为获取数据库到路径");
                    }
                    string dbpath = reader["filename"].ToString();
                    dbpath = Path.GetDirectoryName(dbpath);
                    reader.Dispose();
                    int result;
                    foreach (string sqlItem in sqlList)
                    {
                        string sql = sqlItem.Trim('\r', '\n', ' ');
                        if (sql.Length > 2)
                        {
                            if (sql.Contains("CREATE DATABASE"))
                            {
                                sql = sql.Replace("${DBPATH}", dbpath);
                            }
                            else if (sql.Contains("BACKUP DATABASE"))
                            {
                                if (!Directory.Exists("C:\\SmartAccessBak"))
                                {
                                    Directory.CreateDirectory("C:\\SmartAccessBak");
                                }
                                sql = sql.Replace("${DATE}", DateTime.Now.ToString("_yyyyMMdd_HHmmss"));
                            }
                            command.CommandText = sql;
                            try
                            {
                                result = command.ExecuteNonQuery();
                            }
                            catch (SqlException ex)
                            {
                                // log.Error("SQL:" + sql, ex);
                                if (ex.ErrorCode == -2146232060)//已存在对象屏蔽
                                {
                                    continue;
                                }
                                else
                                {
                                    throw ex;
                                }
                            }
                            catch (Exception ex)
                            {
                                //  log.Error("SQL:" + sql, ex);
                                throw;
                            }
                        }
                    }
                }
            }
        }
Beispiel #7
0
        private void btnCreateDatabase_Click(object sender, EventArgs e)
        {
            DatabaseConfigClass config = GetInputConfig();
            bool isupdate = false;

            if (CheckInput())
            {
                bool exsit = false;
                config.database = "master";
                string      connStr = GetInputConfig().ToString();
                CtrlWaiting waiting = new CtrlWaiting("创建中...", () =>
                {
                    try
                    {
                        using (SqlConnection conn = DatabaseHelper.ConnectDatabase(connStr))
                        {
                            using (SqlCommand command = conn.CreateCommand())
                            {
                                command.CommandType = System.Data.CommandType.Text;
                                command.CommandText = "select count(*) From master.dbo.sysdatabases where name='SmartAccess'";//查询数据库路径
                                var single          = command.ExecuteScalar();
                                int num             = 0;
                                if (object.Equals(single, null) || object.Equals(single, DBNull.Value))
                                {
                                    num = 0;
                                }
                                else
                                {
                                    num = int.Parse(single.ToString());
                                }
                                if (num == 0)
                                {
                                    exsit = false;
                                }
                                exsit = true;
                            }
                        }
                        exsit = true;
                    }
                    catch (Exception ex)
                    {
                        exsit = false;
                    }
                });
                waiting.ShowDialog(this);
                if (exsit)
                {//\r\n重新创建,原始数据库会备份至服务器目录:C:\\SmartAccessBak 下。
                    DialogResult dr = MessageBox.Show("数据库已存在,是否升级数据库?", "提示", MessageBoxButtons.YesNo);
                    if (dr == DialogResult.Cancel)
                    {
                        return;
                    }
                    else if (dr == DialogResult.Yes)
                    {
                        isupdate = true;
                    }
                    else
                    {
                        return;
                    }
                }
            }
            else
            {
                return;
            }
            //创建和备份数据库

            CtrlWaiting waiting1 = new CtrlWaiting((isupdate ? "升级" : "创建") + "数据库中...", () =>
            {
                try
                {
                    DoCreateDataBase(config, isupdate);
                    this.Invoke(new Action(() =>
                    {
                        MessageBox.Show((isupdate ? "升级" : "创建") + "数据库成功!");
                    }));
                }
                catch (Exception ex)
                {
                    this.Invoke(new Action(() =>
                    {
                        MessageBox.Show((isupdate ? "升级" : "创建") + "数据库异常:" + ex.Message);
                    }));
                }
            });

            waiting1.Show(this);
        }
Beispiel #8
0
 public static bool SetSqlServerConfig(DatabaseConfigClass configcls)
 {
     datavbaseConfig = configcls;
     return(configcls.SaveConfig("SqlServerConnectString"));
 }