Beispiel #1
0
        /// <summary>
        /// 创建一个新的数据库
        /// </summary>
        /// <param name="DatabaseName"></param>
        /// <param name="ReturnDescription"></param>
        /// <returns></returns>
        public override bool CreateDatabase(string DatabaseName, ref string ReturnDescription)
        {
            ReturnDescription = "";
            if (!VaildStringParameters(ref ReturnDescription, DatabaseName))
            {
                return(false);
            }

            DatabaseName = DatabaseName.Trim();
            if (!DatabaseName.StartsWith("[") || !DatabaseName.EndsWith("]"))
            {
                DatabaseName = "[" + DatabaseName + "]";
            }

            if (!Open(ref ReturnDescription))
            {
                ReturnDescription = "数据库打开出错!";
                return(false);
            }

            Shove.DatabaseFactory.MSSQL mssql = new Shove.DatabaseFactory.MSSQL(this.ConnectionString);
            int result = mssql.ExecuteNonQuery("create database " + DatabaseName + ";");

            Close();

            //测试证明-1已经创建成功了
            if (result < -1)
            {
                ReturnDescription = "数据库指令执行发生错误1,返回值是 " + result.ToString() + "|" + "create database " + DatabaseName + "|" + this.ConnectionString;

                return(false);
            }

            return(true);
        }
Beispiel #2
0
        /// <summary>
        /// 修改用户密码
        /// </summary>
        /// <param name="UserName"></param>
        /// <param name="OldPassword"></param>
        /// <param name="NewPassword"></param>
        /// <param name="ReturnDescription"></param>
        /// <returns></returns>
        public override bool EditUserPassword(string UserName, string OldPassword, string NewPassword, ref string ReturnDescription)
        {
            ReturnDescription = "";
            if (!VaildStringParameters(ref ReturnDescription, UserName, OldPassword, NewPassword))
            {
                return(false);
            }

            if (!Open(ref ReturnDescription))
            {
                return(false);
            }
            string sql = String.Format("exec sp_password '{0}', '{1}', '{2}';",
                                       (String.IsNullOrEmpty(OldPassword) ? "NULL" : OldPassword), NewPassword, UserName);

            Shove.DatabaseFactory.MSSQL mssql = new Shove.DatabaseFactory.MSSQL(this.ConnectionString);

            //int result =Shove . Database.MSSQL.ExecuteNonQuery((SqlConnection)this.conn,
            //    String.Format("exec sp_password '{0}', '{1}', '{2}'",
            //    (String.IsNullOrEmpty(OldPassword) ? "NULL" : OldPassword), NewPassword, UserName));

            int result = mssql.ExecuteNonQuery(sql);


            if (result < -1)//-1时已经成功
            {
                ReturnDescription = "数据库指令执行发生错误3,返回值是 " + result.ToString() + "||" + sql;

                return(false);
            }
            return(true);
        }
Beispiel #3
0
        /// <summary>
        /// 物理移除数据库
        /// </summary>
        /// <param name="DatabaseName"></param>
        /// <param name="UserName"></param>
        /// <param name="ReturnDescription"></param>
        /// <returns></returns>
        public override bool RemoveDatabase(string DatabaseName, string UserName, ref string ReturnDescription)
        {
            ReturnDescription = "";
            if (!VaildStringParameters(ref ReturnDescription, DatabaseName, UserName))
            {
                return(false);
            }

            DatabaseName = DatabaseName.Trim();
            if (!DatabaseName.StartsWith("[") || !DatabaseName.EndsWith("]"))
            {
                DatabaseName = "[" + DatabaseName + "]";
            }

            if (!Open(ref ReturnDescription))
            {
                return(false);
            }

            string sql = String.Format(@"use {0} 
                                            EXEC sp_revokedbaccess N'{1}'
                                            EXEC sp_droplogin N'{2}' 
                                         use master
                                            ALTER DATABASE {3} SET SINGLE_USER with ROLLBACK IMMEDIATE
                                            DROP DATABASE {4}", DatabaseName, UserName, UserName, DatabaseName, DatabaseName);

            Shove.DatabaseFactory.MSSQL mssql = new Shove.DatabaseFactory.MSSQL(this.ConnectionString);
            int result = mssql.ExecuteNonQuery(sql);

            Close();

            if (result < 0)
            {
                ReturnDescription = "移除数据库出现错误,返回值是 " + result.ToString();

                return(false);
            }

            return(true);
        }