封装SQLDMO操作的类,能完成常用的SQL Server 2000管理工作。
使用前请添加 "Microsoft SQLDMO Object Library" COM 引用。
有部分代码借鉴网络资料,再次向原作者表示感谢。
/* **********************************************
* Rainsoft Development Library for Microsoft.NET
* Author: Q.yuhen ([email protected])
********************************************** */
using System;
using System.Collections;
using System.Runtime.InteropServices;
using System.IO;
using SQLDMO;
namespace Rainsoft.Data
{
/// <summary>
/// SQLDMO辅助类
/// </summary>
/// <remarks>
/// 使用前添加 "Microsoft SQLDMO Object Library" COM 引用。
/// </remarks>
public class SqlDmoHelper
{
#region DatabaseInfo
/// <summary>
/// 数据库信息
/// </summary>
public struct DatabaseInfo
{
public string Name;
public string Owner;
public string PrimaryFilePath;
public string CreateDate;
public int Size;
public float SpaceAvailable;
public string PrimaryName;
public string PrimaryFilename;
public int PrimarySize;
public int PrimaryMaxSize;
public string LogName;
public string LogFilename;
public int LogSize;
public int LogMaxSize;
public override string ToString()
{
string s = "Name:{0}\r\n" +
"Owner:{1}\r\n" +
"PrimaryFilePath:{2}\r\n" +
"CreateDate:{3}\r\n" +
"Size:{4}MB\r\n" +
"SpaceAvailable:{5}MB\r\n" +
"PrimaryName:{6}\r\n" +
"PrimaryFilename:{7}\r\n" +
"PrimarySize:{8}MB\r\n" +
"PrimaryMaxSize:{9}MB\r\n" +
"LogName:{10}\r\n" +
"LogFilename:{11}\r\n" +
"LogSize:{12}MB\r\n" +
"LogMaxSize:{13}MB";
return string.Format(s, Name, Owner, PrimaryFilePath, CreateDate, Size,
SpaceAvailable, PrimaryName, PrimaryFilename, PrimarySize,
PrimaryMaxSize, LogName, LogFilename, LogSize, LogMaxSize);
}
}
#endregion
private SQLServer2 sqlServer;
private string server;
private string login;
private string password;
public SqlDmoHelper(string server, string login, string password)
{
this.server = server;
this.login = login;
this.password = password;
sqlServer = new SQLServer2Class();
sqlServer.Connect(server, login, password);
}
public void Close()
{
sqlServer.Close();
}
#region Property
/// <summary>
/// 获取主要版本号
/// </summary>
public string Version
{
get
{
return string.Format("{0}.{1}", sqlServer.VersionMajor, sqlServer.VersionMinor);
}
}
/// <summary>
/// 获取详细版本信息
/// </summary>
public string VersionString
{
get
{
return sqlServer.VersionString;
}
}
/// <summary>
/// 获取服务器时间
/// </summary>
public string ServerTime
{
get
{
return sqlServer.ServerTime;
}
}
/// <summary>
/// 获取系统服务名称
/// </summary>
public string ServiceName
{
get
{
return sqlServer.ServiceName;
}
}
/// <summary>
/// 获取或设置系统服务是否自动启动
/// </summary>
public bool AutostartServer
{
get
{
return sqlServer.Registry.AutostartServer;
}
set
{
sqlServer.Registry.AutostartServer = value;
}
}
/// <summary>
/// 获取字符集设置
/// </summary>
public string CharacterSet
{
get
{
return sqlServer.Registry.CharacterSet;
}
}
/// <summary>
/// 获取服务器物理内存大小(MB)
/// </summary>
public int PhysicalMemory
{
get
{
return sqlServer.Registry.PhysicalMemory;
}
}
/// <summary>
/// 获取服务器处理器(CPU)数量
/// </summary>
public int NumberOfProcessors
{
get
{
return sqlServer.Registry.NumberOfProcessors;
}
}
#endregion
#region Public Method
/// <summary>
/// 获取网络内所有可用的服务器
/// </summary>
/// <returns></returns>
public static string[] ListAvailableSQLServers()
{
NameList servers = new ApplicationClass().ListAvailableSQLServers();
if (servers.Count <= 0) return new string[0];
ArrayList list = new ArrayList(servers.Count);
foreach (object o in servers) list.Add(o);
return (string[])list.ToArray(typeof(string));
}
/// <summary>
/// 断开数据库所有连接
/// </summary>
/// <param name="dbName"></param>
public void KillAllProcess(string dbName)
{
QueryResults qr = sqlServer.EnumProcesses(-1) ;
// 获取SPID和DBNAME字段列序号
int iColPIDNum = -1 ;
int iColDbName = -1 ;
for(int i = 1; i <= qr.Columns; i++)
{
string strName = qr.get_ColumnName(i) ;
if (strName.ToUpper().Trim() == "SPID")
iColPIDNum = i ;
else if (strName.ToUpper().Trim() == "DBNAME")
iColDbName = i ;
if (iColPIDNum != -1 && iColDbName != -1)
break ;
}
// 将指定数据库的连接全部断开
for(int i = 1; i <= qr.Rows; i++)
{
int lPID = qr.GetColumnLong(i,iColPIDNum);
string strDBName = qr.GetColumnString(i, iColDbName);
if (string.Compare(strDBName, "test", true) == 0)
sqlServer.KillProcess(lPID);
}
}
/// <summary>
/// 获取数据库信息
/// </summary>
/// <param name="dbName"></param>
/// <returns></returns>
public DatabaseInfo GetDatabaseInfo(string dbName)
{
Database db = GetDatabase(dbName);
if (db == null) throw new Exception("Database not exists!");
DatabaseInfo info = new DatabaseInfo();
info.Name = db.Name;
info.Owner = db.Owner;
info.PrimaryFilePath = db.PrimaryFilePath;
info.CreateDate = db.CreateDate;
info.Size = db.Size;
info.SpaceAvailable = db.SpaceAvailableInMB;
DBFile primary = db.FileGroups.Item("PRIMARY").DBFiles.Item(1);
info.PrimaryName = primary.Name;
info.PrimaryFilename = primary.PhysicalName.Trim();
info.PrimarySize = primary.Size;
info.PrimaryMaxSize = primary.MaximumSize;
_LogFile log = db.TransactionLog.LogFiles.Item(1);
info.LogName = log.Name;
info.LogFilename = log.PhysicalName.Trim();
info.LogSize = log.Size;
info.LogMaxSize = log.MaximumSize;
return info;
}
/// <summary>
/// 分离数据库
/// </summary>
/// <param name="dbName"></param>
/// <remarks>
/// 分离前最好调用KillAllProcess关闭所有连接,否则分离可能失败。
/// </remarks>
public void DetachDB(string dbName)
{
sqlServer.DetachDB(dbName, true);
}
/// <summary>
/// 附加数据库
/// </summary>
/// <param name="dbName"></param>
/// <param name="dbFile"></param>
/// <example>
/// <code>
/// SqlDmoHelper dmo = new SqlDmoHelper("(local)", "sa", "sa");
/// dmo.AttachDB("test", @"d:\temp\database\test_data.mdf");
/// </code>
/// </example>
public void AttachDB(string dbName, string dbFile)
{
sqlServer.AttachDB(dbName, dbFile);
}
/// <summary>
/// 删除数据库(文件也将被删除)
/// </summary>
/// <param name="dbName"></param>
public void KillDB(string
没有合适的资源?快使用搜索试试~ 我知道了~
C#实体类自动生成改进版源码
共233个文件
tmp:85个
jpg:43个
dll:20个
2星 需积分: 3 44 下载量 53 浏览量
2009-11-28
11:27:27
上传
评论
收藏 13.24MB RAR 举报
温馨提示
在原有的基础上,进行了改进可支持3中数据库,分别为SQLServer、Oracle、MySQL数据库可批量生成,根据安装的驱动决定使用,在此基础上(方便c#初学者,在进行更深的改进,比如加入服务层和业务层等)。
资源推荐
资源详情
资源评论
收起资源包目录
C#实体类自动生成改进版源码 (233个子文件)
R.A 4.06MB
AutoEntityBLL 18KB
AutoEntityDAL 24KB
#ESOLV~1.CAC 9KB
#ESOLV~1.CAC 4KB
ResolveAssemblyReference.cache 14KB
ResolveAssemblyReference.cache 11KB
ResolveAssemblyReference.cache 8KB
AutoEntity.csproj.GenerateResource.Cache 844B
mainFrm.Designer.cs 26KB
AutoEntityBiz.cs 15KB
mainFrm.cs 12KB
OracleDALConnection.cs 3KB
Resources.Designer.cs 3KB
SqlDALConnection.cs 3KB
OracleDALConnection.cs 2KB
MySqlDALConnection.cs 2KB
DBManager.cs 2KB
DBManagerFactory.cs 2KB
ServerInfo.cs 2KB
AssemblyInfo.cs 1KB
AssemblyInfo.cs 1KB
AssemblyInfo.cs 1KB
AssemblyInfo.cs 1KB
EntityInfo.cs 1KB
Settings.Designer.cs 1KB
Program.cs 477B
AutoEntity.csproj 4KB
AutoEntityDAL.csproj 2KB
AutoEntityBLL.csproj 2KB
AutoEntityModels.csproj 2KB
DBManager.cs~ 0B
CodeSmith.Engine.dll 1.66MB
Interop.SQLDMO.dll 928KB
SchemaExplorer.dll 444KB
SchemaExplorer.SqlSchemaProvider.dll 160KB
AutoEntityBLL.dll 24KB
AutoEntityBLL.dll 24KB
AutoEntityBLL.dll 24KB
SchemaExplorer.Trigger.dll 20KB
AutoEntityDAL.dll 20KB
AutoEntityDAL.dll 20KB
AutoEntityDAL.dll 20KB
AutoEntityDAL.dll 20KB
AutoEntityModels.dll 16KB
AutoEntityModels.dll 16KB
AutoEntityModels.dll 16KB
AutoEntityBLL.dll 16KB
AutoEntityDAL.dll 16KB
AutoEntityModels.dll 16KB
AutoEntityModels.dll 16KB
AutoEntityModels.dll 16KB
chinese用SQLDMO掌握你的数据库信息.doc 123KB
在VB.NET中应用SQLDMO.doc 107KB
english用SQLDMO掌握你的数据库信息.doc 50KB
AutoEntity.exe 32KB
AutoEntity.exe 32KB
AutoEntity.vshost.exe 6KB
LOGO-HI.GIF 2KB
SQLDMO介绍_相关文章_百度空间.htm 15KB
9787111213017.jpg 26KB
9787111212508.jpg 22KB
9787111203437.jpg 19KB
9787111213826.jpg 18KB
9787111211594.jpg 18KB
9787111216919.jpg 18KB
9787111202031.jpg 17KB
9787111190592.jpg 17KB
9787111199182.jpg 17KB
9787111196242.jpg 16KB
9787111216926.jpg 16KB
9787111205807.jpg 16KB
9787111196266.jpg 16KB
9787111199496.jpg 16KB
9787111192367.jpg 16KB
9787111211969.jpg 16KB
9787111199472.jpg 15KB
9787111216261.jpg 15KB
9787111207771.jpg 15KB
9787111202134.jpg 15KB
9787111216322.jpg 15KB
9787111212973.jpg 15KB
9787111205852.jpg 15KB
9787111207788.jpg 15KB
9787111199717.jpg 14KB
9787111188896.jpg 14KB
9787111199731.jpg 14KB
9787111199724.jpg 14KB
9787111205685.jpg 14KB
97587C~1.JPG 14KB
9787111205869.jpg 14KB
9787111192954.jpg 14KB
9787111204671.jpg 14KB
9787111202589.jpg 13KB
9787111214755.jpg 13KB
9787111201212.jpg 13KB
9787111210696.jpg 13KB
9787111206842.jpg 13KB
9787111187752.jpg 13KB
9787111206590.jpg 12KB
共 233 条
- 1
- 2
- 3
资源评论
- wjsliliang12014-06-01谢谢,可以使用,但是不能获取表和字段的注释
爱心男孩
- 粉丝: 3
- 资源: 24
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功