精华内容
下载资源
问答
  • OLE:对象的类没有在注册数据库中注册  激活该对象所需的应用程序不可用。是否用“转换……”将其转换为或激活为另一类型的对象  解决方案主要有以下三种: 方案一: 选中输出窗口,点击"视图"菜单,选择...

    我在网上下载了破解版的SAS9.3,用了一段时间之后,今天打开就填出一个提示框:
    OLE:对象的类没有在注册数据库中注册 
    激活该对象所需的应用程序不可用。是否用“转换……”将其转换为或激活为另一类型的对象 



    解决方案主要有以下三种:
    方案一:

    选中输出窗口,点击"视图"菜单,选择程序编辑器,这时候就会出现程序编辑器(无标题)。
    现在可以正常使用SAS,导入、导出和执行等功能都没问题。

    方案二:
    1.在C:\windows\system32\文件夹搜索mscomctl.ocx,不存在就去百度下载和安装,然后放到C:\windows\system32\  (32位机器)
      在C:\windows\SysWOW64\文件夹搜索mscomctl.ocx,不存在就去百度下载和安装,然后放到C:\windows\SysWOW64\  (64位机器)
    2.在C:\Windows\System32下,右键以管理员身份打开cmd.exe。
    3.输入一下命令:regsvr32.exe C:\windows\system32\mscomctl.ocx (32位机器)
       输入一下命令:regsvr32.exe C:\windows\SysWOW64\mscomctl.ocx (64位机器)

       注册成功信息如下:

       
    4.不要关闭之前的cmd窗口,在SAS安装文件夹搜索EditorControl.ocx,不存在就下载一个,
      然后记下存放路径,如:D:\Program Files\SASHome\EnhancedEditor\EditorControl.ocx
    5.在cmd.exe输入一下命令:regsvr32.exe D:\SAS92\SharedFiles\EnhancedEditor\EditorControl.ocx  同上,如果显示注册成功信息即可。

      若提示如下错误:

      

      请先百度和安装vcredist_x64.exe和vcredist_x86.exe,

      注意两个事项:

      (1).vcredist_x64和vcredist_x86都要安装;

      (2)vcredist_x64和vcredist_x86要一致:同为Visual Studio 2005或Visual Studio 2008(建议)

    重启电脑后注册。
    6.至此,问题已经解决,打开SAS测试一下吧。有问题请提出!

    方案三:
    参照官网解决方案,链接地址: http://support.sas.com/kb/45/523.html 
    主要就是添加一个SASCFG文件夹和替换regstry.sas7bitm,用于替换的regstry.sas7bitm文件可以从其他安装成功的SAS目录下拷贝。
    也可以按照该链接提供的FTP地址下载,注意对应32位和64位)。

    文件存放路径:
    D:\Program Files\SASHome\SASFoundation\9.3\core\nls\en\SASCFG
    D:\Program Files\SASHome\SASFoundation\9.3\core\sashelp\regstry.sas7bitm


    展开全文
  • 一、计算机超级管理员账户有数据库管理员权限  用管理员账户登录数据库,直接修改sa账户密码即可。 二、数据库中没有管理员权限的账户 SQL Server 2005/2008提供了针对该情况的更好的灾难恢复方法,无需侵入...

    一、计算机超级管理员账户有数据库的管理员权限

      用管理员账户登录数据库,直接修改sa账户密码即可。

    二、数据库中没有管理员权限的账户

        

    SQL Server 2005/2008提供了针对该情况的更好的灾难恢复方法,无需侵入master数据库,不会对master数据库中的对象和数据(例如登陆帐号,证书等)造成损坏。Windows管理员组的成员现在当SQL Server以单用户模式启动(另外一个名称为维护模式)的情况下对SQL Server有了访问权限。

     

    通过使用单用户模式,SQL Server 2005/2008避免了Windows管理员以sysadmin的身份在不被发现的情况下滥用权限。Windows管理员帐号能进行部分维护任务,例如安装补丁等。

     

    要将SQL Server以单用户模式启动,您可以在命令行模式下增加“-m”参数。您也可以使用SQL Server配置管理员工具。它提供了对文件访问和其他权限的合适控制。要是用配置管理工具来恢复您的系统,您可以根据如下步骤:

     

    1. 从菜单->SQL Server 2005->配置,打开配置管理工具(SQL Server Configuration Manager)

    2. 停止您想要恢复的SQL Server实例

    3. 找到“高级”标签,“启动参数”选项文本框中增加“;–m”

    4. 点击“是”按钮,重新启动SQL Server实例

    请注意:请确保在“;”和“-m”之间没有空格。注册参数解析器对类似的输入错误非常敏感。您可以在SQL Server的ERRORLOG文件内看到显示“SQL Server started in single-user mode.”

    5. 在SQL Server实例以单用户模式启动后,Windows管理员帐号就能使用sqlcmd工具在Windows验证模式下连接SQL Server。您可以使用T-SQL命令诸如“sp_addsrvrolemember”来在sysadmin服务器角色中添加现有登录帐号或新创建一个登录帐号。范例语句如下:

     

    EXEC sp_addsrvrolemember 'CONTOSO\Buck', 'sysadmin';

     

    GO

     

    6.如此就恢复了计算机超级管理员的数据库管理员权限。 只要sysadmin访问权限被恢复,在配置管理中从启动参数中移除“;-m”参数,重新启动SQL Server实例

     

    重要的安全提示:

    a. 该过程应该只能被用于当没有其他方法使用特权帐号(例如sysadmin或等同角色)来访问系统的灾难恢复。

    b. 该过程允许Windows管理员在SQL Server中有越权行为。它包含了可以被监测和检测出的明确的侵入行为,包含:

    1. 在单用户模式下停止SQL Server并重启

    2. 使用Windows帐号连接SQL Server。

    展开全文
  • 最近做一些数据库管理维护方面的开发,需要了解一些有关数据库的管理信息,比如本机上运行了哪些数据库服务器实例,局域网内运行了哪些数据库服务器实例及每个数据库服务器下有多少数据库,每个数据库的物理文件...
    最近在做一些数据库管理维护方面的开发,需要了解一些有关数据库的管理信息,比如本机上运行了哪些数据库服务器实例,局域网内运行了哪些数据库服务器实例及每个数据库服务器下有多少数据库,每个数据库的物理文件大小及保存位置等等。结合了网上的一些资料和本人的多次实践,总结写出本篇。在这里要感谢一篇文章《sql server系统表详细说明》。

    首先是一些与系统表记录对应的实体类(注意代码中ColumnNameAttribute类是来自于《用C#打造自己的通用数据访问类库(续)》中的类,在周公处它们位于同一namespace下):

    	using System;
    	using System.Collections.Generic;
    	using System.Text;
    	
    	namespace NetSkycn.Data
    	{
    	    /// <summary>
    	    /// 与mater库中的sysaltfiles表对应的实体
    	    /// 作者:周公(zhoufoxcn,转载请注明出处)
    	    /// 创建日期:2011-12-21
    	    /// 博客地址:http://blog.csdn.net/zhoufoxcn 或 http://zhoufoxcn.blog.51cto.com
    	    /// 新浪微博地址:http://weibo.com/zhoufoxcn
    	    /// </summary>
    	    public sealed class SysAltFile
    	    {
    	        /// <summary>
    	        /// smallint,每个数据库的唯一文件标识号。
    	        /// </summary>
    	        [ColumnName("fileid")]
    	        public short FileId { get; set; }
    	        /// <summary>
    	        /// smallint,文件组标识号。
    	        /// </summary>
    	        [ColumnName("groupid")]
    	        public short GroupId { get; set; }
    	        /// <summary>
    	        /// 文件大小(以 8 KB 页为单位)。
    	        /// </summary>
    	        [ColumnName("size")]
    	        public int Size { get; set; }
    	        /// <summary>
    	        /// int,最大文件大小(以 8 KB 页为单位)。0 值表示不增长,–1 值表示文件应一直增长到磁盘已满。
    	        /// </summary>
    	        [ColumnName("maxsize")]
    	        public int MaxSize { get; set; }
    	        /// <summary>
    	        /// int,数据库的增长大小。0 值表示不增长。根据状态的值,可以是页数或文件大小的百分比。如果 status 为 0x100000,则 growth 是文件大小的百分比;否则是页数。
    	        /// </summary>
    	        [ColumnName("growth")]
    	        public int Growth { get; set; }
    	        /// <summary>
    	        /// int,保留。
    	        /// </summary>
    	        [ColumnName("perf")]
    	        public int Pref { get; set; }
    	        /// <summary>
    	        /// smallint,该文件所属数据库的数据库标识号。
    	        /// </summary>
    	        [ColumnName("dbid")]
    	        public short DbId { get; set; }
    	        /// <summary>
    	        /// nchar(128),文件的逻辑名称。
    	        /// </summary>
    	        [ColumnName("name")]
    	        public string Name { get; set; }
    	        /// <summary>
    	        /// nchar(260),物理设备的名称,包括文件的完整路径。
    	        /// </summary>
    	        [ColumnName("filename")]
    	        public string FileName { get; set; }
    	    }
    	
    	    /// <summary>
    	    /// 每个表和视图中的每列在表中占一行,存储过程中的每个参数在表中也占一行。
    	    /// 该表位于每个数据库中。
    	    /// 作者:周公(zhoufoxcn,转载请注明出处)
    	    /// 创建日期:2011-12-21
    	    /// 博客地址:http://blog.csdn.net/zhoufoxcn 或 http://zhoufoxcn.blog.51cto.com
    	    /// 新浪微博地址:http://weibo.com/zhoufoxcn 
    	    /// </summary>
    	    public sealed class SysColumn
    	    {
    	        /// <summary>
    	        /// sysname,列名或过程参数的名称。 
    	        /// </summary>
    	        [ColumnName("name")]
    	        public string Name { get; set; }
    	        /// <summary>
    	        /// int,该列所属的表对象 ID,或与该参数关联的存储过程 ID。 
    	        /// </summary>
    	        [ColumnName("id")]
    	        public int Id { get; set; }
    	        /// <summary>
    	        /// tinyint,systypes 中的物理存储类型。 
    	        /// </summary>
    	        [ColumnName("xtype")]
    	        public byte XType { get; set; }
    	        /// <summary>
    	        /// smallint,扩展的用户定义数据类型 ID。 
    	        /// </summary>
    	        [ColumnName("xusertype")]
    	        public short XUserType { get; set; }
    	        /// <summary>
    	        /// smallint,systypes 中的最大物理存储长度。 
    	        /// </summary>
    	        [ColumnName("length")]
    	        public short Length { get; set; }
    	        /// <summary>
    	        /// smallint,列或参数 ID。 
    	        /// </summary>
    	        [ColumnName("colid")]
    	        public short ColumnId { get; set; }
    	        /// <summary>
    	        /// int,该列的默认值 ID。 
    	        /// </summary>
    	        [ColumnName("cdefault")]
    	        public int CDefault { get; set; }
    	        /// <summary>
    	        /// int,该列的规则或 CHECK 约束 ID。 
    	        /// </summary>
    	        [ColumnName("domain")]
    	        public int Domain { get; set; }
    	        /// <summary>
    	        /// smallint,过程分组时(0 表示非过程项)的子过程号。 
    	        /// </summary>
    	        [ColumnName("number")]
    	        public short Number { get; set; }
    	        /// <summary>
    	        /// smallint,该列所在行的偏移量;如果为负,表示可变长度行。 
    	        /// </summary>
    	        [ColumnName("offset")]
    	        public short Offset { get; set; }
    	        /// <summary>
    	        /// tinyint  用于描述列或参数属性的位图: 
    	        ///0x08 = 列允许空值。
    	        ///0x10 = 当添加 varchar 或 varbinary 列时,ANSI 填充生效。保留 varchar 列的尾随空格,保留 varbinary 列的尾随零。
    	        ///0x40 = 参数为 OUTPUT 参数。
    	        ///0x80 = 列为标识列。
    	        /// </summary>
    	        [ColumnName("status")]
    	        public byte Status { get; set; }
    	        /// <summary>
    	        /// tinyint,systypes 中的物理存储类型。 
    	        /// </summary>
    	        [ColumnName("type")]
    	        public byte Type { get; set; }
    	        /// <summary>
    	        /// smallint,systypes 中的用户定义数据类型 ID。 
    	        /// </summary>
    	        [ColumnName("usertype")]
    	        public short UserType { get; set; }
    	        /// <summary>
    	        /// smallint,该列的精度级别。 
    	        /// </summary>
    	        [ColumnName("prec")]
    	        public short? Prec { get; set; }
    	        /// <summary>
    	        /// int,该列的小数位数。 
    	        /// </summary>
    	        [ColumnName("scale")]
    	        public int? Scale { get; set; }
    	        /// <summary>
    	        /// int  表示是否已计算该列的标志: 0 = 未计算。1 = 已计算。
    	        /// </summary>
    	        [ColumnName("iscomputed")]
    	        public int IsComputed { get; set; }
    	        /// <summary>
    	        /// int  表示该过程参数是否是输出参数: 1 = 真。0 = 假。
    	        /// </summary>
    	        [ColumnName("isoutparam")]
    	        public int IsOutParameter { get; set; }
    	        /// <summary>
    	        /// int  表示该列是否允许空值: 1 = 真。0 = 假。
    	        /// </summary>
    	        [ColumnName("isnullable")]
    	        public int IsNullable { get; set; }
    	    }
    	
    	    /// <summary>
    	    /// 该表只存储在 master 数据库中。
    	    /// Microsoft SQL Server 上的每个数据库在表中占一行。
    	    /// 最初安装 SQL Server 时, sysdatabases 包含 master 、 model 、 msdb 、 mssqlweb 和 tempdb 数据库的项。
    	    /// 作者:周公(zhoufoxcn,转载请注明出处)
    	    /// 创建日期:2011-12-21
    	    /// 博客地址:http://blog.csdn.net/zhoufoxcn 或 http://zhoufoxcn.blog.51cto.com
    	    /// 新浪微博地址:http://weibo.com/zhoufoxcn
    	    /// </summary>
    	    public sealed class SysDatabase
    	    {
    	        /// <summary>
    	        /// sysname,数据库的名称。
    	        /// </summary>
    	        [ColumnName("name")]
    	        public string Name { get; set; }
    	        /// <summary>
    	        /// smallint,数据库 ID。
    	        /// </summary>
    	        [ColumnName("dbid")]
    	        public short DbId { get; set; }
    	        /// <summary>
    	        /// varbinary(85),数据库创建者的系统 ID。
    	        /// </summary>
    	        [ColumnName("sid")]
    	        public string Sid { get; set; }
    	        /// <summary>
    	        /// smallint,用于创建数据库时在内部锁定该数据库。
    	        /// </summary>
    	        [ColumnName("mode")]
    	        public short Mode { get; set; }
    	        /// <summary>
    	        /// int,状态位,其中某些状态位可由用户使用 sp_dboption ( read only 、 dbo use only 、 single user 等)进行设置:
    	        ///1 = autoclose ;使用 sp_dboption 设置。
    	        ///4 = select into/bulkcopy ;使用 sp_dboption 设置。
    	        ///8 = trunc. log on chkpt ;使用 sp_dboption 设置。
    	        ///16 = torn page detection ,使用 sp_dboption 设置。
    	        ///32 = loading 。
    	        ///64 = pre recovery 。
    	        ///128 = recovering 。
    	        ///256 = not recovered 。
    	        ///512 = offline ;使用 sp_dboption 设置。
    	        ///1024 = read only ;使用 sp_dboption 设置。
    	        ///2048 = dbo use only ;使用sp_dboption 设置。
    	        ///4096 = single user ;使用 sp_dboption 设置。
    	        ///32768 = emergency mode 。 
    	        ///4194304 = autoshrink 。 
    	        ///1073741824 = cleanly shutdown 。
    	        ///可以同时打开多个位。
    	        /// </summary>
    	        [ColumnName("status")]
    	        public int Status { get; set; }
    	        /// <summary>
    	        /// int,16384 = ANSI null default ;使用 sp_dboption 设置。
    	        /// 65536 = concat null yields null ,使用 sp_dboption 设置。
    	        /// 131072 = recursive triggers ,使用 sp_dboption 设置。
    	        /// 1048576 = default to local cursor ,使用 sp_dboption 设置。
    	        /// 8388608 = quoted identifier ,使用sp_dboption 设置。
    	        /// 33554432 = cursor close on commit ,使用 sp_dboption 设置。
    	        /// 67108864 = ANSI nulls ,使用 sp_dboption 设置。
    	        /// 268435456 = ANSI warnings ,使用 sp_dboption 设置。
    	        /// 536870912 = full text enabled ,使用 sp_fulltext_database 设置。
    	        /// </summary>
    	        [ColumnName("status2")]
    	        public int Status2 { get; set; }
    	        /// <summary>
    	        /// datetime,创建日期。
    	        /// </summary>
    	        [ColumnName("crdate")]
    	        public DateTime CreateDate { get; set; }
    	        /// <summary>
    	        /// int,包含用于复制的信息位图:1 = 已发布。2 = 已订阅。4 = 合并已发布。8 = 合并已订阅。
    	        /// </summary>
    	        [ColumnName("category")]
    	        public int Category { get; set; }
    	        /// <summary>
    	        /// tinyint,数据库的兼容级别。
    	        /// </summary>
    	        [ColumnName("cmptlevel")]
    	        public byte CmptLevel { get; set; }
    	        /// <summary>
    	        /// nvarchar(260),数据库主文件的操作系统路径和名称。
    	        /// </summary>
    	        [ColumnName("filename")]
    	        public string FileName { get; set; }
    	        /// <summary>
    	        /// smallint,创建数据库时使用的 SQL Server 代码内部版本号。仅供 SQL Server 工具在内部用于升级处理。
    	        /// </summary>
    	        [ColumnName("version")]
    	        public short Version { get; set; }
    	
    	    }
    	
    	    /// <summary>
    	    /// 数据库中的每个文件在表中占一行。
    	    /// 该系统表是虚拟表,不能直接更新或修改。
    	    /// 作者:周公(zhoufoxcn,转载请注明出处)
    	    /// 创建日期:2011-12-21
    	    /// 博客地址:http://blog.csdn.net/zhoufoxcn 或 http://zhoufoxcn.blog.51cto.com
    	    /// 新浪微博地址:http://weibo.com/zhoufoxcn 
    	    /// </summary>
    	    public sealed class SysFile
    	    {
    	        /// <summary>
    	        /// smallint,每个数据库的唯一文件标识号。 
    	        /// </summary>
    	        [ColumnName("fileid")]
    	        public short FileId { get; set; }
    	        /// <summary>
    	        /// smallint,文件组标识号。 
    	        /// </summary>
    	        [ColumnName("groupid")]
    	        public short GroupId { get; set; }
    	        /// <summary>
    	        /// int,文件大小(以 8 KB 页为单位)。 
    	        /// </summary>
    	        [ColumnName("size")]
    	        public int Size { get; set; }
    	        /// <summary>
    	        /// int,最大文件大小(以 8 KB 页为单位)。0 值表示不增长,–1 值表示文件应一直增长到磁盘已满。 
    	        /// </summary>
    	        [ColumnName("maxsize")]
    	        public int MaxSize { get; set; }
    	        /// <summary>
    	        /// int,数据库的增长大小。0 值表示不增长。根据状态的值,可以是页数或文件大小的百分比。如果 status 包含 0x100000,则 growth 是文件大小的百分比;否则,它是页数。 
    	        /// </summary>
    	        [ColumnName("growth")]
    	        public int Growth { get; set; }
    	        /// <summary>
    	        /// int,growth 值(以兆字节 (MB) 或千字节 (KB) 为单位)的状态位。 
    	        ///0x1 = 默认设备。
    	        ///0x2 = 磁盘文件。
    	        ///0x40 = 日志设备。
    	        ///0x80 = 自上次备份后已写入文件。
    	        ///0x4000 = 由 CREATE DATABASE 语句
    	        ///隐性创建的设备。
    	        ///0x8000 = 在数据库创建过程中创建的设备。
    	        ///0x100000 = 按百分比而不是按页数增长。
    	        /// </summary>
    	        [ColumnName("status")]
    	        public int Status { get; set; }
    	        /// <summary>
    	        /// nchar(128),文件的逻辑名称。 
    	        /// </summary>
    	        [ColumnName("name")]
    	        public string Name { get; set; }
    	        /// <summary>
    	        /// nchar(260),物理设备的名称,包括文件的完整路径。 
    	        /// </summary>
    	        [ColumnName("filename")]
    	        public string FileName { get; set; }
    	    }
    	
    	    /// <summary>
    	    /// 该表只存储在 master 数据库中。
    	    /// 每个登录帐户在表中占一行。
    	    /// 作者:周公(zhoufoxcn,转载请注明出处)
    	    /// 创建日期:2011-12-21
    	    /// 博客地址:http://blog.csdn.net/zhoufoxcn 或 http://zhoufoxcn.blog.51cto.com
    	    /// 新浪微博地址:http://weibo.com/zhoufoxcn
    	    /// </summary>
    	    public sealed class SysLogin
    	    {
    	        /// <summary>
    	        /// varbinary(85),安全标识符。
    	        /// </summary>
    	        [ColumnName("sid")]
    	        public string Sid { get; set; }
    	        /// <summary>
    	        /// datetime,添加登录的日期。
    	        /// </summary>
    	        [ColumnName("createdate")]
    	        public DateTime CreateDate { get; set; }
    	        /// <summary>
    	        /// datetime,更新登录的日期。
    	        /// </summary>
    	        [ColumnName("updatedate")]
    	        public DateTime UpdateDate { get; set; }
    	        /// <summary>
    	        /// varchar(30),用户的登录 ID。
    	        /// </summary>
    	        [ColumnName("name")]
    	        public string Name { get; set; }
    	        /// <summary>
    	        /// nvarchar(128),建立连接时,用户的默认数据库名。
    	        /// </summary>
    	        [ColumnName("dbname")]
    	        public string DbName { get; set; }
    	        /// <summary>
    	        /// nvarchar(128),用户的加密密码(可以是 NULL)。
    	        /// </summary>
    	        [ColumnName("password")]
    	        public string Password { get; set; }
    	        /// <summary>
    	        /// nvarchar(128),用户的默认语言。
    	        /// </summary>
    	        [ColumnName("language")]
    	        public string Language { get; set; }
    	        /// <summary>
    	        /// int,如果登录是 Microsoft Windows NT 用户或组且已被拒绝访问,则为 1。
    	        /// </summary>
    	        [ColumnName("denylogin")]
    	        public int DenyLogin { get; set; }
    	        /// <summary>
    	        /// int,如果已授权登录访问服务器,则为 1。
    	        /// </summary>
    	        [ColumnName("hasaccess")]
    	        public int HasAccess { get; set; }
    	        /// <summary>
    	        /// int,如果登录是 Windows NT 用户或组,则为 1;如果登录是 Microsoft SQL Server 登录,则为 0。
    	        /// </summary>
    	        [ColumnName("isntname")]
    	        public int IsNTName { get; set; }
    	        /// <summary>
    	        /// int,如果登录是 Windows NT 组,则为 1。
    	        /// </summary>
    	        [ColumnName("isntgroup")]
    	        public int IsNTGroup { get; set; }
    	        /// <summary>
    	        /// int,如果登录是 Windows NT 用户,则为 1。
    	        /// </summary>
    	        [ColumnName("isntuser")]
    	        public int IsNTUser { get; set; }
    	        /// <summary>
    	        /// int,如果登录是 sysadmin 服务器角色成员,则为 1。
    	        /// </summary>
    	        [ColumnName("sysadmin")]
    	        public int SystemAdmin { get; set; }
    	        /// <summary>
    	        /// int,如果登录是 securityadmin 服务器角色成员,则为 1。
    	        /// </summary>
    	        [ColumnName("securityadmin")]
    	        public int SecurityAdmin { get; set; }
    	        /// <summary>
    	        /// int,如果登录是 serveradmin 固定服务器角色成员,则为 1。
    	        /// </summary>
    	        [ColumnName("serveradmin")]
    	        public int ServerAdmin { get; set; }
    	        /// <summary>
    	        /// int,如果登录是 setupadmin 固定服务器角色成员,则为 1。
    	        /// </summary>
    	        [ColumnName("setupadmin")]
    	        public int SetupAdmin { get; set; }
    	        /// <summary>
    	        /// int,如果登录是 processadmin 固定服务器角色成员,则为 1。
    	        /// </summary>
    	        [ColumnName("processadmin")]
    	        public int ProccessAdmin { get; set; }
    	        /// <summary>
    	        /// int,如果登录是 diskadmin 固定服务器角色成员,则为 1。
    	        /// </summary>
    	        [ColumnName("diskadmin")]
    	        public int DiskAdmin { get; set; }
    	        /// <summary>
    	        /// int,如果登录是 dbcreator 固定服务器角色成员,则为 1。
    	        /// </summary>
    	        [ColumnName("dbcreator")]
    	        public int DbCreator { get; set; }
    	        /// <summary>
    	        /// nvarchar(128),登录的实际名称,该名称可能不同于 SQL Server 所使用的登录名。
    	        /// </summary>
    	        [ColumnName("loginname")]
    	        public string LoginName { get; set; }
    	    }
    	
    	    /// <summary>
    	    /// 在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在表中占一行。
    	    /// 只有在 tempdb 内,每个临时对象才在该表中占一行。
    	    /// 作者:周公(zhoufoxcn,转载请注明出处)
    	    /// 创建日期:2011-12-21
    	    /// 博客地址:http://blog.csdn.net/zhoufoxcn 或 http://zhoufoxcn.blog.51cto.com
    	    /// 新浪微博地址:http://weibo.com/zhoufoxcn
    	    /// </summary>
    	    public sealed class SysObject
    	    {
    	        /// <summary>
    	        /// sysname,对象名。 
    	        /// </summary>
    	        [ColumnName("name")]
    	        public string Name { get; set; }
    	        /// <summary>
    	        /// int,对象标识号。 
    	        /// </summary>
    	        [ColumnName("Id")]
    	        public int Id { get; set; }
    	        /// <summary>
    	        /// char(2)  对象类型。可以是下列对象类型中的一种: 
    	        /// C = CHECK 约束
    	        /// D = 默认值或 DEFAULT 约束
    	        /// F = FOREIGN KEY 约束
    	        /// L = 日志
    	        /// FN = 标量函数
    	        /// IF = 内嵌表函数
    	        /// P = 存储过程
    	        /// PK = PRIMARY KEY 约束(类型是 K)
    	        /// RF = 复制筛选存储过程
    	        /// S = 系统表
    	        /// TF = 表函数
    	        /// TR = 触发器
    	        /// U = 用户表
    	        /// UQ = UNIQUE 约束(类型是 K)
    	        /// V = 视图
    	        /// X = 扩展存储过程
    	        /// </summary>
    	        [ColumnName("xtype")]
    	        public string XType { get; set; }
    	        /// <summary>
    	        /// smallint,所有者对象的用户 ID。 
    	        /// </summary>
    	        [ColumnName("uid")]
    	        public short Uid { get; set; }
    	        /// <summary>
    	        /// int,父对象的对象标识号(例如,对于触发器或约束,该标识号为表 ID)。 
    	        /// </summary>
    	        [ColumnName("parent_obj")]
    	        public int Parent_Object { get; set; }
    	        /// <summary>
    	        /// datetime,对象的创建日期。 
    	        /// </summary>
    	        [ColumnName("crdate")]
    	        public DateTime CreateDate { get; set; }
    	        /// <summary>
    	        /// smallint,为全文索引注册的所有用户表的全文目录标识符,对于没有注册的所有用户表则为 0。 
    	        /// </summary>
    	        [ColumnName("ftcatid")]
    	        public short FtCatId { get; set; }
    	        /// <summary>
    	        /// int,版本号,该版本号在每次表的架构更改时都增加。 
    	        /// </summary>
    	        [ColumnName("schema_ver")]
    	        public int Schemal_Version { get; set; }
    	        /// <summary>
    	        /// char(2)  对象类型。可以是下列对象类型中的一种: 
    	        /// C = CHECK 约束
    	        /// D = 默认值或 DEFAULT 约束
    	        /// F = FOREIGN KEY 约束
    	        /// L = 日志
    	        /// FN = 标量函数
    	        /// IF = 内嵌表函数
    	        /// P = 存储过程
    	        /// PK = PRIMARY KEY 约束(类型是 K)
    	        /// RF = 复制筛选存储过程
    	        /// S = 系统表
    	        /// TF = 表函数
    	        /// TR = 触发器
    	        /// U = 用户表
    	        /// UQ = UNIQUE 约束(类型是 K)
    	        /// V = 视图
    	        /// X = 扩展存储过程
    	        /// </summary>
    	        [ColumnName("type")]
    	        public string Type { get; set; }
    	        /// <summary>
    	        /// smallint,内部状态信息。 
    	        /// </summary>
    	        [ColumnName("sysstat")]
    	        public short SysStat { get; set; }
    	        /// <summary>
    	        /// int,用于发布、约束和标识。 
    	        /// </summary>
    	        [ColumnName("category")]
    	        public int Category { get; set; }
    	    }
    	
    	    /// <summary>
    	    /// 对于每种系统提供数据类型和用户定义数据类型,均包含一行信息。
    	    /// 该表存储在每个数据库中。
    	    ///这些是系统提供的数据类型及其 ID 号。
    	    /// 作者:周公(zhoufoxcn,转载请注明出处)
    	    /// 创建日期:2011-12-21
    	    /// 博客地址:http://blog.csdn.net/zhoufoxcn 或 http://zhoufoxcn.blog.51cto.com
    	    /// 新浪微博地址:http://weibo.com/zhoufoxcn
    	    /// </summary>
    	    public sealed class SysType
    	    {
    	        /// <summary>
    	        /// sysname,数据类型名称。 
    	        /// </summary>
    	        [ColumnName("name")]
    	        public string Name { get; set; }
    	        /// <summary>
    	        /// tinyint,物理存储类型。 
    	        /// </summary>
    	        [ColumnName("xtype")]
    	        public byte XType { get; set; }
    	        /// <summary>
    	        /// smallint,扩展用户类型。 
    	        /// </summary>
    	        [ColumnName("xusertype")]
    	        public short XUserType { get; set; }
    	        /// <summary>
    	        /// smallint,数据类型的物理长度。 
    	        /// </summary>
    	        [ColumnName("length")]
    	        public short Length { get; set; }
    	        /// <summary>
    	        /// tinyint,服务器所使用的内部精度。(不能在查询中使用。) 
    	        /// </summary>
    	        [ColumnName("xprec")]
    	        public byte XPrec { get; set; }
    	        /// <summary>
    	        /// tinyint,服务器所使用的内部小数位数。(不能在查询中使用。) 
    	        /// </summary>
    	        [ColumnName("xscale")]
    	        public byte XScale { get; set; }
    	        /// <summary>
    	        /// int,对此数据类型进行完整性检查的存储过程的 ID。 
    	        /// </summary>
    	        [ColumnName("tdefault")]
    	        public int TDefault { get; set; }
    	        /// <summary>
    	        /// int,对此数据类型进行完整性检查的存储过程的 ID。 
    	        /// </summary>
    	        [ColumnName("domain")]
    	        public int Domain { get; set; }
    	        /// <summary>
    	        /// smallint,数据类型创建者的用户 ID。 
    	        /// </summary>
    	        [ColumnName("uid")]
    	        public short Uid { get; set; }
    	        /// <summary>
    	        /// smallint,用户类型 ID。 
    	        /// </summary>
    	        [ColumnName("usertype")]
    	        public short UserType { get; set; }
    	        /// <summary>
    	        /// bit,可变长度数据类型为 1;否则为 0。 
    	        /// </summary>
    	        [ColumnName("variable")]
    	        public bool Variable { get; set; }
    	        /// <summary>
    	        /// bit,指出此数据类型的默认为空性。如果 CREATE 或 ALTER TABLE 指定了为空性,那么该值将替代此数据类型的默认为空性。 
    	        /// </summary>
    	        [ColumnName("allownulls")]
    	        public bool AllowNulls { get; set; }
    	        /// <summary>
    	        /// tinyint,物理存储数据类型。 
    	        /// </summary>
    	        [ColumnName("type")]
    	        public short Type { get; set; }
    	        /// <summary>
    	        /// smallint,此数据类型的精度级别。 
    	        /// </summary>
    	        [ColumnName("prec")]
    	        public short? Prec { get; set; }
    	        /// <summary>
    	        /// tinyint,此数据类型的小数位数(根据精度)。 
    	        /// </summary>
    	        [ColumnName("scale")]
    	        public byte? Scale { get; set; }
    	    }
    	
    	    /// <summary>
    	    /// 数据库中每个 Microsoft Windows 用户、Windows 组、Microsoft SQL Server 用户或 SQL Server 角色在表中占一行。
    	    /// 作者:周公(zhoufoxcn,转载请注明出处)
    	    /// 创建日期:2011-12-21
    	    /// 博客地址:http://blog.csdn.net/zhoufoxcn 或 http://zhoufoxcn.blog.51cto.com
    	    /// 新浪微博地址:http://weibo.com/zhoufoxcn
    	    /// </summary>
    	    public sealed class SysUser
    	    {
    	        /// <summary>
    	        /// smallint,用户 ID,在此数据库中是唯一的。1 是数据库所有者。 
    	        /// </summary>
    	        [ColumnName("uid")]
    	        public short Uid { get; set; }
    	        /// <summary>
    	        /// sysname,用户名或组名,在此数据库中是唯一的。 
    	        /// </summary>
    	        [ColumnName("Name")]
    	        public string Name { get; set; }
    	        /// <summary>
    	        /// varbinary(85),此条目的安全性标识符。 
    	        /// </summary>
    	        [ColumnName("sid")]
    	        public byte[] Sid { get; set; }
    	        /// <summary>
    	        /// datetime,帐户的添加日期。 
    	        /// </summary>
    	        [ColumnName("createdate")]
    	        public DateTime CreateDate { get; set; }
    	        /// <summary>
    	        /// datetime,帐户的上次修改日期。 
    	        /// </summary>
    	        [ColumnName("updatedate")]
    	        public DateTime UpdateDate { get; set; }
    	        /// <summary>
    	        /// smallint,此用户所属的组 ID。如果 uid = gid ,那么此条目就定义一个组。 
    	        /// </summary>
    	        [ColumnName("gid")]
    	        public short Gid { get; set; }
    	        /// <summary>
    	        /// int,如果该帐户有数据库访问权限,则为 1。 
    	        /// </summary>
    	        [ColumnName("hasdbaccess")]
    	        public int HasDbAccess { get; set; }
    	        /// <summary>
    	        /// int,如果该帐户是有登录帐户的 Windows 组、Windows 用户或 SQL Server 用户,则为 1。 
    	        /// </summary>
    	        [ColumnName("islogin")]
    	        public int IsLogin { get; set; }
    	        /// <summary>
    	        /// int,如果该帐户是 Windows 组或 Windows 用户,则为 1。 
    	        /// </summary>
    	        [ColumnName("isntname")]
    	        public int IsNtName { get; set; }
    	        /// <summary>
    	        /// int,如果该帐户是 Windows 组,则为 1。 
    	        /// </summary>
    	        [ColumnName("isntgroup")]
    	        public int IsNtGroup { get; set; }
    	        /// <summary>
    	        /// int,如果该帐户是 Windows 用户,则为 1。 
    	        /// </summary>
    	        [ColumnName("isntuser")]
    	        public int IsNtUser { get; set; }
    	        /// <summary>
    	        /// int,如果该帐户是 SQL Server 用户,则为 1。 
    	        /// </summary>
    	        [ColumnName("issqluser")]
    	        public int IsSqlUser { get; set; }
    	        /// <summary>
    	        /// int,如果该帐户以另一个用户为别名,则为 1。 
    	        /// </summary>
    	        [ColumnName("isaliased")]
    	        public int IsAliased { get; set; }
    	        /// <summary>
    	        /// int,如果该帐户是 SQL Server 角色,则为 1。 
    	        /// </summary>
    	        [ColumnName("issqlrole")]
    	        public int IsSqlRole { get; set; }
    	        /// <summary>
    	        /// int,如果该帐户是应用程序角色,则为 1。 
    	        /// </summary>
    	        [ColumnName("isapprole")]
    	        public int IsAppRole { get; set; }
    	    }
    	
    	    /// <summary>
    	    /// 代表SQL Server 2000 或 SQL Server 2005 实例的信息的类.
    	    /// 由 SqlDataSourceEnumerator 定位网络上的数据源所使用的机制的性质决定,该方法并不总是能返回可用服务器的完整列表,该列表可能在每次调用时都不同。
    	    /// 如果您打算使用此函数来让用户从列表中选择服务器,请确保您始终同时提供键入列表中所没有的名称的选项,以防服务器枚举未能返回所有的可用服务器。
    	    /// 此外,此方法的执行时间可能相当长,因此如果性能要求很高,在调用此方法时应谨慎从事。
    	    /// 作者:周公(zhoufoxcn,转载请注明出处)
    	    /// 创建日期:2011-12-21
    	    /// 博客地址:http://blog.csdn.net/zhoufoxcn 或 http://zhoufoxcn.blog.51cto.com
    	    /// 新浪微博地址:http://weibo.com/zhoufoxcn
    	    /// </summary>
    	    public sealed class SqlServerDataSource
    	    {
    	        /// <summary>
    	        /// 服务器名。
    	        /// </summary>
    	        public string ServerName { get; set; }
    	        /// <summary>
    	        /// 服务器实例的名称。如果服务器作为默认实例运行,则为空。
    	        /// </summary>
    	        public string InstanceName { get; set; }
    	        /// <summary>
    	        /// 指示服务器是否是群集的一部分。
    	        /// </summary>
    	        public bool IsClustered { get; set; }
    	        /// <summary>
    	        /// 服务器版本(对于 SQL Server 2000,为 8.00.x;对于 SQL Server 2005,为 9.00.x)。
    	        /// </summary>
    	        public string Version { get; set; }
    	    }
    	}

    对外提供访问接口的类代码如下(注意代码中DbUtility类是来自于《C#打造自己的通用数据访问类库()》中的类,在周公处它们位于同一namespace下):

    	using System;
    	using System.Collections.Generic;
    	using System.Text;
    	using System.Data;
    	using System.Data.Sql;
    	using Microsoft.Win32;
    	
    	namespace NetSkycn.Data
    	{
    	    /// <summary>
    	    /// 对外提供数据库管理信息的类
    	    /// 作者:周公(zhoufoxcn,转载请注明出处)
    	    /// 创建日期:2011-12-21
    	    /// 博客地址:http://blog.csdn.net/zhoufoxcn 或 http://zhoufoxcn.blog.51cto.com
    	    /// 新浪微博地址:http://weibo.com/zhoufoxcn
    	    /// </summary>
    	    public class SqlServerManager
    	    {
    	        private static readonly string SQL_GetSysAltFiles = "use master;select * from SysAltFiles";
    	        private static readonly string SQL_GetSysColumns = "select * from SysColumns";
    	        private static readonly string SQL_GetSysDatabases = "use master;select * from SysDatabases";
    	        private static readonly string SQL_GetSysFiles = "select * from SysFiles";
    	        private static readonly string SQL_GetSysLogins = "use master;select * from SysLogins";
    	        private static readonly string SQL_GetSysObjects = "select * from SysObjects";
    	        private static readonly string SQL_GetSysTypes = "select * from SysTypes";
    	        private static readonly string SQL_GetSysUsers = "select * from SysUsers";
    	
    	        private DbUtility dbUtility = null;
    	        public string ConnectionString { get; set; }
    	        public SqlServerManager()
    	        {
    	
    	        }
    	        /// <summary>
    	        /// 创建SqlServerManager的实例
    	        /// </summary>
    	        /// <param name="connectionString"></param>
    	        public SqlServerManager(string connectionString)
    	        {
    	            this.ConnectionString = connectionString;
    	            dbUtility = new DbUtility(connectionString, DbProviderType.SqlServer);
    	        }
    	        /// <summary>
    	        /// 从主数据库中保存数据库的文件信息
    	        /// </summary>
    	        /// <returns></returns>
    	        public List<SysAltFile> GetSysAltFiles()
    	        {
    	            dbUtility.ConnectionString = ConnectionString;
    	            return dbUtility.QueryForList<SysAltFile>(SQL_GetSysAltFiles, null);
    	        }
    	        /// <summary>
    	        /// 从当前连接的数据库中获取所有列的信息
    	        /// </summary>
    	        /// <returns></returns>
    	        public List<SysColumn> GetSysColumns()
    	        {
    	            dbUtility.ConnectionString = ConnectionString;
    	            return dbUtility.QueryForList<SysColumn>(SQL_GetSysColumns, null);
    	        }
    	        /// <summary>
    	        /// 从主数据库中获取服务器中所有数据库的信息
    	        /// </summary>
    	        /// <returns></returns>
    	        public List<SysDatabase> GetSysDatabases()
    	        {
    	            dbUtility.ConnectionString = ConnectionString;
    	            return dbUtility.QueryForList<SysDatabase>(SQL_GetSysDatabases, null);
    	        }
    	        /// <summary>
    	        /// 获取当前连接的数据库的数据库物理文件信息
    	        /// </summary>
    	        /// <returns></returns>
    	        public List<SysFile> GetSysFiles()
    	        {
    	            dbUtility.ConnectionString = ConnectionString;
    	            return dbUtility.QueryForList<SysFile>(SQL_GetSysFiles, null);
    	        }
    	        /// <summary>
    	        /// 从主数据库中查询登陆帐号信息
    	        /// </summary>
    	        /// <returns></returns>
    	        public List<SysLogin> GetSysLogins()
    	        {
    	            dbUtility.ConnectionString = ConnectionString;
    	            return dbUtility.QueryForList<SysLogin>(SQL_GetSysLogins, null);
    	        }
    	        /// <summary>
    	        /// 获取当前连接的数据库中所有数据库对象
    	        /// </summary>
    	        /// <returns></returns>
    	        public List<SysObject> GetSysObjects()
    	        {
    	            dbUtility.ConnectionString = ConnectionString;
    	            return dbUtility.QueryForList<SysObject>(SQL_GetSysObjects, null);
    	        }
    	        /// <summary>
    	        /// 获取当前连接的数据库中用户定义数据类型
    	        /// </summary>
    	        /// <returns></returns>
    	        public List<SysType> GetSysTypes()
    	        {
    	            dbUtility.ConnectionString = ConnectionString;
    	            return dbUtility.QueryForList<SysType>(SQL_GetSysTypes, null);
    	        }
    	        /// <summary>
    	        /// 获取当前连接的数据中的用户信息
    	        /// </summary>
    	        /// <returns></returns>
    	        public List<SysUser> GetSysUsers()
    	        {
    	            dbUtility.ConnectionString = ConnectionString;
    	            return dbUtility.QueryForList<SysUser>(SQL_GetSysUsers, null);
    	        }
    	        /// <summary>
    	        /// 
    	        /// </summary>
    	        /// <param name="connectionString"></param>
    	        /// <returns></returns>
    	        public static List<SysAltFile> GetSysAltFiles(string connectionString)
    	        {
    	            DbUtility utility = new DbUtility(connectionString, DbProviderType.SqlServer);
    	            return utility.QueryForList<SysAltFile>(SQL_GetSysAltFiles, null);
    	        }
    	        /// <summary>
    	        /// 
    	        /// </summary>
    	        /// <param name="connectionString"></param>
    	        /// <returns></returns>
    	        public static List<SysColumn> GetColumns(string connectionString)
    	        {
    	            DbUtility utility = new DbUtility(connectionString, DbProviderType.SqlServer);
    	            return utility.QueryForList<SysColumn>(SQL_GetSysColumns, null);
    	        }
    	        /// <summary>
    	        /// 
    	        /// </summary>
    	        /// <param name="connectionString"></param>
    	        /// <returns></returns>
    	        public static List<SysDatabase> GetSysDatabases(string connectionString)
    	        {
    	            DbUtility utility = new DbUtility(connectionString, DbProviderType.SqlServer);
    	            return utility.QueryForList<SysDatabase>(SQL_GetSysDatabases, null);
    	        }
    	        /// <summary>
    	        /// 
    	        /// </summary>
    	        /// <param name="connectionString"></param>
    	        /// <returns></returns>
    	        public static List<SysFile> GetSysFiles(string connectionString)
    	        {
    	            DbUtility utility = new DbUtility(connectionString, DbProviderType.SqlServer);
    	            return utility.QueryForList<SysFile>(SQL_GetSysFiles, null);
    	        }
    	        /// <summary>
    	        /// 
    	        /// </summary>
    	        /// <param name="connectionString"></param>
    	        /// <returns></returns>
    	        public static List<SysLogin> GetSysLogins(string connectionString)
    	        {
    	            DbUtility utility = new DbUtility(connectionString, DbProviderType.SqlServer);
    	            return utility.QueryForList<SysLogin>(SQL_GetSysLogins, null);
    	        }
    	        /// <summary>
    	        /// 
    	        /// </summary>
    	        /// <param name="connectionString"></param>
    	        /// <returns></returns>
    	        public static List<SysObject> GetSysObjects(string connectionString)
    	        {
    	            DbUtility utility = new DbUtility(connectionString, DbProviderType.SqlServer);
    	            return utility.QueryForList<SysObject>(SQL_GetSysObjects, null);
    	        }
    	        /// <summary>
    	        /// 
    	        /// </summary>
    	        /// <param name="connectionString"></param>
    	        /// <returns></returns>
    	        public static List<SysType> GetSysTypes(string connectionString)
    	        {
    	            DbUtility utility = new DbUtility(connectionString, DbProviderType.SqlServer);
    	            return utility.QueryForList<SysType>(SQL_GetSysTypes, null);
    	        }
    	        /// <summary>
    	        /// 
    	        /// </summary>
    	        /// <param name="connectionString"></param>
    	        /// <returns></returns>
    	        public static List<SysUser> GetSysUsers(string connectionString)
    	        {
    	            DbUtility utility = new DbUtility(connectionString, DbProviderType.SqlServer);
    	            return utility.QueryForList<SysUser>(SQL_GetSysUsers, null);
    	        }
    	        
    	        /// <summary>
    	        /// 检索局域网内(但不包括本机)包含有关所有可见 SQL Server 2000 或 SQL Server 2005 实例的信息的
    	        /// </summary>
    	        /// <returns></returns>
    	        public static List<SqlServerDataSource> GetDataSources()
    	        {
    	            DataTable data = SqlDataSourceEnumerator.Instance.GetDataSources();
    	            foreach (DataColumn column in data.Columns)
    	            {
    	                Console.WriteLine(column.ColumnName);
    	            }
    	            return EntityReader.GetEntities<SqlServerDataSource>(data);
    	        }
    	        /// <summary>
    	        /// 获取本地及当前局域网内所有的SQL Server数据库服务器实例的名称
    	        /// </summary>
    	        /// <returns></returns>
    	        public static List<string> EnumerateAllDbInstance()
    	        {
    	            List<string> allInstances = EnumerateLocalDbInstance();
    	            allInstances.AddRange(EnumerateRemoteDbInstance());
    	            return allInstances;
    	        }
    	        /// <summary>
    	        ///查询本机的SQL Server服务器实例
    	        /// </summary>
    	        /// <returns></returns>
    	        public static List<string> EnumerateLocalDbInstance()
    	        {
    	            List<string> serverInstances = new List<string>();
    	            RegistryKey registryKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Microsoft SQL Server");
    	            string[] keyValue = (string[])registryKey.GetValue("InstalledInstances");
    	            if (keyValue != null && (int)keyValue.Length > 0)
    	            {
    	                string[] strArrays = keyValue;
    	                foreach (string instanceName in strArrays)
    	                {
    	                    //采用默认实例名的数据库服务器,其默认实例名就是电脑名
    	                    if (string.Compare(instanceName, "MSSQLSERVER", StringComparison.InvariantCultureIgnoreCase) == 0)
    	                    {
    	                        serverInstances.Add(Environment.MachineName);
    	                    }
    	                    else//采用电脑名+实例名的数据库服务器(通常见于一台Server上安装了多个SQL Server)
    	                    {
    	                        serverInstances.Add(string.Format("{0}\\{1}", Environment.MachineName, instanceName));
    	                    }
    	                }
    	            }
    	            return serverInstances;
    	        }
    	
    	        /// <summary>
    	        ///查询当前局域网中正在运行的SQL Server数据库服务器实例
    	        /// </summary>
    	        /// <returns></returns>
    	        public static List<string> EnumerateRemoteDbInstance()
    	        {
    	            DataTable dataServer = SqlDataSourceEnumerator.Instance.GetDataSources();
    	            List<string> listServer = new List<string>(dataServer.Rows.Count);
    	            string serverName, instanceName;
    	            foreach (DataRow row in dataServer.Rows)
    	            {
    	                serverName = row["ServerName"].ToString();
    	                instanceName = row["InstanceName"].ToString();
    	                if (!string.IsNullOrEmpty(instanceName))
    	                {
    	                    listServer.Add(string.Format("{0}\\{1}", serverName, instanceName));
    	                }
    	                else
    	                {
    	                    listServer.Add(serverName);
    	                }
    	
    	            }
    	            return listServer;
    	
    	        }
    	    }
    	}

    单元测试代码如下(注意使用了NUnit作为单元测试工具)

    	using System;
    	using System.Collections.Generic;
    	using System.Linq;
    	using System.Text;
    	using NetSkycn.Data;
    	using NUnit.Framework;
    	
    	namespace netskycnNUnitTest
    	{
    	    [TestFixture]
    	    public class SqlServerManagerTest
    	    {
    	        private static string connectionString = "Data Source=testServer;Initial Catalog=testDB;User ID=sa;Password=test;";
    	        private SqlServerManager manager = null;
    	        public static void Main()
    	        {
    	            int i = SqlServerManager.GetDataSources().Count;
    	            Console.WriteLine(typeof(int?));
    	            Console.WriteLine(typeof(int?).GetGenericArguments()[0]);
    	            Console.WriteLine(typeof(int?).BaseType);
    	            Console.WriteLine(typeof(int?).BaseType.DeclaringType);
    	            Console.WriteLine(typeof(int?).BaseType.BaseType);
    	            Console.ReadLine();
    	        }
    	
    	        [TestFixtureSetUp]
    	        public void Initialize()
    	        {
    	            manager = new SqlServerManager(connectionString);
    	        }
    	
    	        [Test]
    	        public void InstanceGetSysAltFiles()
    	        {
    	            Assert.Greater(manager.GetSysAltFiles().Count, 0);
    	        }
    	        [Test]
    	        public void InstanceGetSysColumns()
    	        {
    	            Assert.Greater(manager.GetSysColumns().Count, 0);
    	        }
    	        [Test]
    	        public void InstanceGetSysDatabases()
    	        {
    	            Assert.Greater(manager.GetSysDatabases().Count, 0);
    	        }
    	        [Test]
    	        public void InstanceGetSysFiles()
    	        {
    	            Assert.Greater(manager.GetSysFiles().Count, 0);
    	        }
    	        [Test]
    	        public void InstanceGetSysLogins()
    	        {
    	            Assert.Greater(manager.GetSysLogins().Count, 0);
    	        }
    	        [Test]
    	        public void InstanceGetSysObjects()
    	        {
    	            Assert.Greater(manager.GetSysObjects().Count, 0);
    	        }
    	        [Test]
    	        public void InstanceGetSysTypes()
    	        {
    	            Assert.Greater(manager.GetSysTypes().Count, 0);
    	        }
    	        [Test]
    	        public void InstanceGetSysUsers()
    	        {
    	            Assert.Greater(manager.GetSysUsers().Count, 0);
    	        }
    	        [Test]
    	        public void StaticGetSysAltFiles()
    	        {
    	            Assert.Greater(SqlServerManager.GetSysAltFiles(connectionString).Count, 0);
    	        }
    	        [Test]
    	        public void StaticGetColumns()
    	        {
    	            Assert.Greater(SqlServerManager.GetColumns(connectionString).Count, 0);
    	        }
    	        [Test]
    	        public void StaticGetSysDatabases()
    	        {
    	            Assert.Greater(SqlServerManager.GetSysDatabases(connectionString).Count, 0);
    	        }
    	        [Test]
    	        public void StaticGetSysFiles()
    	        {
    	            Assert.Greater(SqlServerManager.GetSysFiles(connectionString).Count, 0);
    	        }
    	        [Test]
    	        public void StaticGetSysLogins()
    	        {
    	            Assert.Greater(SqlServerManager.GetSysLogins(connectionString).Count, 0);
    	        }
    	        [Test]
    	        public void StaticGetSysObjects()
    	        {
    	            Assert.Greater(SqlServerManager.GetSysObjects(connectionString).Count, 0);
    	        }
    	        [Test]
    	        public void StaticGetSysTypes()
    	        {
    	            Assert.Greater(SqlServerManager.GetSysTypes(connectionString).Count, 0);
    	        }
    	        [Test]
    	        public void StaticGetSysUsers()
    	        {
    	            Assert.Greater(SqlServerManager.GetSysUsers(connectionString).Count, 0);
    	        }
    	    }
    	}

    单元测试结果:


    证明测试通过。限于篇幅,其中某些方法可以提供更多参数的展开,但这不是本篇的重点。

    周公

    2012-04-19

    武汉







    展开全文
  • 数据库课程设计实验报告--图书馆管理系统

    万次阅读 多人点赞 2018-03-08 14:03:13
    一、系统平台 开发工具:Eclipse java Mars 数据库 MySQL server,Navicat可视化工具 操作系统:win10 ... 提取码:4y44 ... 图书馆信息管理系统数据库用以收集、存储书籍信息、人员(读者、图书管理员...

    一、系统平台

    开发工具:Eclipse java Mars

    数据库 MySQL server,Navicat可视化工具

    操作系统:win10

    百度云链接:https://pan.baidu.com/s/1SIWR75NRIh8sSL0oV7uZgA

    提取码:4y44

    声明:由于该项目已是四年前大一时所做,时隔已久,且本人已不从事java相关工作,恕不能解答各位问题!!! 无法提供数据库代码!!! 此代码仅供初学java者参考使用

    二、数据库规划

    1.    任务陈述:

       图书馆信息管理系统数据库用以收集、存储书籍信息、人员(读者、图书管理员)信息、图书借阅信息以及意外处理信息,及时记录存储各个环节信息的变更,以便管理、查询、显示、输出,节约大量人力物力把人们从繁杂的手工记录方式中解脱出来的同时,有力保障图书馆日常事务的高效运作。

    2.    任务目标

    目标类别

    子目标

    人员信息管理

    读者信息管理,包括读者类别、性别、借书数量

    图书馆管理员信息管理,包括管理员权限、性别、电话号

    书籍信息管理

    书籍基本信息管理,包括书籍编号、书名、作者、出版社、出版时间、价格等

    借阅信息管理

    借书信息管理,包括书籍编号、读者编号、借书日期、还书日期

    还书信息管理,包括书籍编号、读者编号、还书日期

    三、需求分析

    功能需求

    1.图书基本信息管理

    图书基本信息管理功能主要由系统管理员来进行维护。

    主要过程是:以管理员身份登录到图书管理系统中,查询、修改、图书的书名、ISBN、库存量等信息和添加新书和删除旧书等。这些信息都会被记录到相应的数据库中。

    1. 图书基本信息包括书名,作者,出版日期, ISBN和库从数量;

    2. 添加新书:需要输入书名、作者、出版日期,ISBN和库从数量;

    3. 删除旧书:输入ISBN号或者输入书名,查询得到相应的旧书删除其信息;

    4. 查找图书:输入ISBN号或书名或作者或者出版日期查找相应的图书并显示其信息;

    5. 查找所有图书:查找数据库中存放的所有图书信息。

    2.用户管理

    用户管理功能主要由图书管理员来进行维护,该功能只有以图书管理员身份登录时才会出现。

    主要过程是:图书管理员身份登录到图书管理系统中的用户管理功能模块中,添加、删除、查询和修改数据库中的用户信息。

    1.用户基本信息包括姓名、性别、email、联系方式;

    2. 添加用户:需要对输入的姓名、性别、email、联系方式进行验证

    3. 删除用户:输入ID号,显示用户信息,然后确认删除;

    4. 查询用户信息:输入ID号,显示对应用户信息;

    5. 显示所有用户信息:调用功能,显示所有用户信息。

    3借书

    4.还书

    5.用户注册

    图书馆管理员注册:用户名,密码,性别,姓名,年龄

    读者注册:用户名,密码,性别,姓名,年龄

    5.用户登录

    图书管理员功能:

    1.      图书的录入、查询、修改和删除

    2.      读者信息的添加、查询、修改、删除等

    读者功能:

    1.查阅读书,

    2.借阅功能

    3.还书功能

    性能需求

    1.  数据精确度 

    保证查询的查全率和查准率为100%,所有在相应域中包含查询关键字的记录都能查到,所有在相应域中不包含查询关键字的记录都不能查到。 

    2. 系统响应时间

    n  单个记录查询时间少于3秒

    n  多个记录查询时间少于6秒

    n  更新/保存记录时间少于2秒

    3. 适应性

    满足运行环境在允许操作系统之间的安全转换和与其他应用软件的独立运行要求

    4.运行需求

    1用户界面

    n 使用浏览器界面结构,采用导航栏界面方式,尽力带给操作用户便利,对用户友好;对鼠标和键盘单独支持。

    2硬件接口

    n 本软件需要能够互联网的支撑,用户的硬件平台应该能够与互联网连接。

    3软件接口

    n 运行于Windows98及更高版本的Windows操作系统之上,或者其他系统。

    4故障处理

    n 正常使用时不应出错,若运行时遇到不可恢复的系统错误,也必须保证数据库完好无损。

    四、数据库逻辑设计

    1.E-R

    2.数据字典

    Book表:

    Reader表:

    Manager表:

    Borrow表:

     

    五、   应用程序运行结果

    1.    登录注册界面:

    入口:

    读者登陆:

    管理员登录:

    读者注册:

    管理员注册:

    管理员主界面:

    图书查询界面:

    图书添加界面:

    图书编辑界面:

    读者信息查询界面:

     

    读者信息添加界面:

    读者信息编辑界面:

    细节方面:

    读者主界面:

    借书界面:

    续借界面:

    续借后,借书时间,还书时间改变,默认借书期限为30天:

    还书界面:(还书成功后从列表中自动删除)

     

    六、应用程序设计

    源代码:https://download.csdn.net/download/xiedelong/10275538

    展开全文
  • 数据库安全管理

    千次阅读 2018-09-01 10:35:09
    目录 + 1.数据库安全控制策略概述 + 2.用户管理 + 3.资源限制与口令管理 ...系统级别上控制数据库的存取和使用机制,包括有效的用户名与口令、是否可以连接数据库、用户可以进行哪些系统操...
  • C#数据库图书管理系统

    万次阅读 多人点赞 2016-09-19 16:50:30
    通过模拟图书管理系统,实现以下功能 学生账号的注册 学生对馆藏图书状况的查询 学生借书,还书状态的查询 学生借书以及归还图书 学生欠款的查询 二,框架分析 数据库主要包括: 学生表:学生学号,...
  • 管理员身份运行bat脚本时,获取当前文件所在目录  知道windows的bat脚本很强大,但是具体命令向来很少接触,今天win7上运行自己以前写的一个安装mysql数据库到系统服务的脚本时,遇到一些问题,下面记录一下。...
  • 5. 数据库管理

    千次阅读 2011-09-05 13:55:53
    5.1.1. 服务器端脚本和实用工具概述 MySQL程序采用各种不同的选项。但每个MySQL程序提供一个--help选项,你可以用来查阅程序选项相关说明。...你可以命令行中或选项文件中指定选项来替换所有标准程序中的
  • 基于javaweb实现学生成绩管理系统,实现了学生信息管理,课程管理,教师信息管理,学生成绩汇总,学生登录注册,教师和管理员的登录,个人信息修改等。 系统功能大致描述:基于javaweb实现学生成绩管理系统,实现了学生信息...
  • 第十一届中国数据库技术大会(DTCC2020)上,阿里巴巴数据库生态工具团队高级技术专家程实(花名:时勤)就为了大家分享了云原生时代的数据库管理体系以及解决方案。摘要:随着云原生技术的不断发展,数据库也逐渐...
  • MySQL(关系型数据库管理系统)

    千次阅读 2018-01-03 19:13:00
    MySQL 是最流行的关系型数据库管理系统之一,WEB应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。MySQL是一种关系数据库管理系统,关系数据库将数据保存...
  • mySQL (关系型数据库管理系统)

    千次阅读 2017-03-13 08:32:00
    MySQL 是最流行的关系型数据库管理系统之一, WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。 MySQL是一种关系数据库管理系统,关系数据库将数据...
  • mySQL(关系型数据库管理系统)编辑

    万次阅读 2014-11-05 18:35:24
    收藏 2906 1034 ...mySQL(关系型数据库管理系统)编辑 ...MySQL是最流行的关系型数据库管理系统,WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用
  • 数据库技术公文管理系统的应用葛志春(来自CSAI) 2003年03月01日 摘要:数据库是当前应用软件系统的重要组成部分,如何使基于数据库的应用系统安全、可靠、高效的运行一直是软件开发技术研究的难题。...
  • Python实现带GUI和连接数据库的图书管理系统

    千次阅读 多人点赞 2020-12-04 17:51:01
    文章目录前言二、建立数据库library2.1 book表2.2 borrow表2.3 user表三、各个模块介绍3.1 初始界面initial3.2 manager登录注册模块3.3 ID模块3.4 reader登录注册模块3.5 m_operation管理员操作界面3.6 r_operation...
  • 启动该监听程序并注册数据库服务, 然后重新运行 EM Configuration Assistant。 有关详细资料, 请参阅 C:\app\zw\cfgtoollogs\dbca\orcl\emConfig.log 中的日志文件。 然后打开这个日志文件发现配置: conn...
  • Jsp制作企业后台数据库管理系统

    千次阅读 2018-07-05 23:01:08
    一、任何管理网站都需要的一个是登录系统登录界面,所以先制作一个登录界面。㈠、命名login.jsp 下面是我制作此表单页面的代码 表单name/id为Login登录名username,为了美观我前面加了图片01.gif密码框...
  • 图书管理系统数据库设计实验报告

    万次阅读 多人点赞 2018-01-16 09:28:00
    图书管理系统设计实验报告 PB15051157 茹思淞 一、实验题目及其要求 编写一个图书管理系统,要求具有以下内容: 1)存储图书信息、采购和淘汰情况、租借情况 ...本次系
  • mysql数据库报错

    2017-09-05 19:22:27
    解决办法就是:以管理员身份运行cmd,输入:sc delete mysql但是紧接着又提示找不到此服务名解决办法:以管理员身份运行cmd,定位到mysql的安装bin目录下,输入mysqld -install当出现安装成功的时候就可
  • 简介:Navicat premium是一款数据库管理工具,是一个可多重连线资料库的管理工具,它可以让你以单一程式同时连线到 MySQL、SQLite、Oracle 及 PostgreSQL 资料库,让管理不同类型的资料库更加的方便。 1.解压下载的...
  • 写一个可以登录注册包括管理员身份、读者身份在内的,可以管理(增删改查)图书、借阅信息,可以借书还书的图书管理系统 使用数据库:SQL sever 使用语言:C# 使用IDE:Visual Studio 2019 初步想法: 话不多说,第...
  • 数据库课程设计

    万次阅读 多人点赞 2019-01-06 10:00:32
    图书管理系统 1.概述 项目背景 2.需求分析 2.1 系统需求 2.2 数据需求 2.3 数据字典 2.3.1 书籍信息表 ...2.3.5 管理员信息表 2.3.6 图书类型信息表 2.3.7 订单详细信息表 3.数据库设计 3.1 ...
  • 数据库实验:学生管理系统 C# / VS

    千次阅读 2020-05-28 10:08:31
    学生信息管理系统 开发工具:Microsoft SQL Serever 2014/Microsoft Visual studio 2019 开发语言:SQL/C# 主要功能: 系统用户由管理员和学生组成。...SQL serever中新建数据库,新建表,添加数据 --建数据
  • 报刊订阅管理系统数据库

    万次阅读 2014-06-12 13:49:48
     附录3 课程设计报告书写格式要求  为了培养学生严谨的工作态度,锻炼学生编写文档的能力,要求实验报告包括下面...分为管理员登录和一般用户登录。分别通过不同的用户名和密码进入报刊订阅管理界面,新的
  • 数据库安全性

    万次阅读 多人点赞 2018-05-19 19:24:10
    数据库管理系统提供统一的数据保护功能来保证数据的安全可靠和正确有效。数据库的数据保护主要包括数据的安全性和完整性。 一、安全性概述 数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露、...
  • 图书管理员:登录:以图书管理员身份登录 图书查询:根据书名、作者、图书类型等关键字搜索图书 借书、还书、续借:管理员可以为读者办理借阅图书,归还图书,对图书续借。 查看借阅记录:可以根据读者学号以及...
  • Android实现学生信息管理系统之登录与数据库准备

    千次阅读 多人点赞 2019-07-13 10:56:56
    前言 前一阵自学了一些安卓基础,正好需要交数据库大作业,就拿android做了一个简单的学生信息管理系统。 功能设计 登录界面(入口):后台数据库登录密码验证、登录身份选择、修改密码。...管理员端:查询、管理学生...
  • C# 数据库大作业-学生管理系统

    千次阅读 多人点赞 2020-06-17 14:57:45
    制作了一个学生管理系统,基本满足了课程要求

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,292
精华内容 10,916
关键字:

如何在注册数据库的管理员身份