コード例 #1
0
        public ConnectionItem GetConnection(int id)
        {
            try
            {
                string sql = " SELECT ID, name, address, port, userName,";
                sql += " password, connectionType, defaultDatabase FROM [ReportingConnections] WHERE ID=" + id;
                SqliteDataReader reader = this.ExecuteReader(sql);
                while (reader.Read())
                {
                    ConnectionItem.ConnectionTypes connType = ConnectionItem.ConnectionTypes.MySQL;
                    switch (reader[6].ToString())
                    {
                    case "1":
                        connType = ConnectionItem.ConnectionTypes.MSSQL;
                        break;
                    }

                    string strPassword = "";
                    if (reader[5] != DBNull.Value)
                    {
                        strPassword = System.Text.Encoding.UTF8.GetString(DBContent.AES_Decrypt((byte[])(reader[5])));
                    }

                    return(new ConnectionItem(int.Parse(reader[0].ToString()),
                                              reader[1].ToString(),
                                              reader[2].ToString(),
                                              int.Parse(reader[3].ToString()),
                                              reader[4].ToString(),
                                              strPassword,
                                              connType,
                                              reader[7].ToString()));
                }
            }
            finally
            {
                this.CleanUp();
            }
            return(null);
        }
コード例 #2
0
        protected override ApplyResult ProcessApplyItem(ref object obj, out string errorMessage, out string successMessage, out bool edited)
        {
            errorMessage   = "";
            successMessage = "";
            edited         = false;
            string action   = this.Request.Form.action.Value.ToLower();
            int    objectID = -1;

            if (this.Request.Form.objectID != null)
            {
                objectID = int.Parse(this.Request.Form.objectID.Value.ToString());
            }

            string defaultDatabase = "";

            if (this.Request.Form.DefaultDatabase != null)
            {
                defaultDatabase = this.Request.Form.DefaultDatabase.Value;
            }

            int  port      = 0;
            bool portError = false;

            if (this.Request.Form.ConnPort != null)
            {
                if (!int.TryParse(this.Request.Form.ConnPort.Value, out port))
                {
                    portError = true;
                }
            }
            ConnectionItem.ConnectionTypes type =
                this.Request.Form.ConnectionTypes.Value == "mysql" ? ConnectionItem.ConnectionTypes.MySQL : ConnectionItem.ConnectionTypes.MSSQL;

            ConnectionItem item = new ConnectionItem(objectID,
                                                     this.Request.Form.Name.Value,
                                                     this.Request.Form.Host.Value,
                                                     port,
                                                     this.Request.Form.Username.Value,
                                                     this.Request.Form.Password.Value,
                                                     type,
                                                     defaultDatabase);

            obj = item;

            bool showRefreshMessage = false;

            switch (action)
            {
            case BaseWebModule.PostSave:
                bool result = false;
                if (!portError)
                {
                    result = new DBContent().SaveConnection(item, out errorMessage);
                    edited = item.ID > 0;
                }
                else
                {
                    errorMessage = "Invalid Port.";
                }

                if (result)
                {
                    return(ApplyResult.Save);
                }
                break;

            case ConnectionModule.PostRefresh:
                showRefreshMessage = true;
                break;

            case BaseWebModule.PostCancel:
                return(ApplyResult.Cancel);

            case ConnectionModule.PostTest:
                if (ConnectionItem.TestConnection(item, out errorMessage))
                {
                    successMessage = "Successfully connected to the database.";
                }
                break;
            }

            string message;

            if (item.RefreshDatabases(out message))
            {
                if (showRefreshMessage)
                {
                    successMessage = "Successfully refreshed.";
                }
            }
            else
            {
                if (showRefreshMessage)
                {
                    errorMessage = message;
                }
            }
            return(ApplyResult.Message);
        }