123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507 |
- using System;
- using System.Collections;
- using System.Data;
- using System.Data.SqlClient;
- using System.Collections.Generic;
- namespace Ant.Service.Utilities
- {
- /**/
- ///// <summary>
- ///// 创建人:季健国
- ///// 创建时间:2009年8月1日
- ///// 功能描述:实现数据库的备份和还原
- ///// 更新记录:
- ///// </summary>
- //public class DbOperate
- //{
- // #region 调用方法
- // //<asp:Button id="wbtn_Backup" runat="server" Width="60px" Text="备 份" CssClass="Button"></asp:Button>
- // /**/
- // ///// <summary>
- // ///// 备份按钮
- // ///// </summary>
- // ///// <param name="sender"></param>
- // ///// <param name="e"></param>
- // //private void wbtn_Backup_Click(object sender, System.EventArgs e)
- // //{
- // // DbOperate dbop = new DbOperate();
- // // dbop.DbBackup();
- // //}
- // #endregion
- // #region 实例
- // /**/
- // /// <summary>
- // /// 服务器
- // /// </summary>
- // private string server;
- // /**/
- // /// <summary>
- // /// 登录名
- // /// </summary>
- // private string uid;
- // /**/
- // /// <summary>
- // /// 登录密码
- // /// </summary>
- // private string pwd;
- // /**/
- // /// <summary>
- // /// 要操作的数据库
- // /// </summary>
- // private string database;
- // /**/
- // /// <summary>
- // /// 数据库连接字符串
- // /// </summary>
- // private string conn;
- // #endregion
- // /**/
- // /// <summary>
- // /// DbOperate类的构造函数
- // /// 在这里进行字符串的切割,获取服务器,登录名,密码,数据库
- // /// </summary>
- // public DbOperate()
- // {
- // conn = System.Configuration.ConfigurationSettings.AppSettings["DefaultConnectionString"].ToLower();
- // server = StringCut(conn, "server=", ";");
- // uid = StringCut(conn, "uid=", ";");
- // pwd = StringCut(conn, "pwd=", ";");
- // database = StringCut(conn, "database=", ";");
- // }
- // /**/
- // /// <summary>
- // /// 切割字符串
- // /// </summary>
- // /// <param name="str"></param>
- // /// <param name="bg"></param>
- // /// <param name="ed"></param>
- // /// <returns></returns>
- // public string StringCut(string str, string bg, string ed)
- // {
- // string sub;
- // sub = str.Substring(str.IndexOf(bg) + bg.Length);
- // sub = sub.Substring(0, sub.IndexOf(";"));
- // return sub;
- // }
- // /**/
- // /// <summary>
- // /// 构造文件名
- // /// </summary>
- // /// <returns>文件名</returns>
- // private string CreatePath(string path)
- // {
- // string CurrTime = System.DateTime.Now.ToString("yyyyMMdd");
- // //CurrTime = CurrTime.Replace("-", "");
- // //CurrTime = CurrTime.Replace(":", "");
- // //CurrTime = CurrTime.Replace(" ", "");
- // //CurrTime = CurrTime.Substring(0, 12);
- // if (path.IsEmpty())
- // {
- // path = @"d:\" + database + @"bak\";
- // path += database;
- // path += "_db_";
- // path += CurrTime;
- // path += ".BAK";
- // }
- // return path;
- // }
- // private SQLDMO.Application sqlApp = new SQLDMO.ApplicationClass();
- // SQLDMO.NameList sqlServers = null;
- // /// <summary>
- // /// 获取数据库实例,获取本地局域网所有开启的SQL服务名称
- // /// </summary>
- // /// <returns></returns>
- // public List<string> ServerList()
- // {
- // List<string> strlist = new List<string>();
- // sqlServers = sqlApp.ListAvailableSQLServers();
- // for (int i = 0; i < sqlServers.Count; i++)
- // {
- // object srv = sqlServers.Item(i + 1);
- // if (!srv.IsNull())
- // {
- // strlist.Add(srv.ToString());
- // }
- // }
- // return strlist;
- // }
- // /// <summary>
- // /// 获取服务器上所有数据库名称
- // /// </summary>
- // /// <returns></returns>
- // public List<string> GetDataBase()
- // {
- // List<string> strlist = new List<string>();
- // SQLDMO.SQLServer srv = new SQLDMO.SQLServerClass();
- // srv.Connect(server, uid, pwd);
- // foreach (SQLDMO.Database db in srv.Databases)
- // {
- // if (db.Name != null)
- // strlist.Add(db.Name);
- // }
- // return strlist;
- // }
- // /// <summary>
- // /// 返回数据库所有表名
- // /// </summary>
- // /// <param name="dbname"></param>
- // /// <returns></returns>
- // public List<string> GetTableName(string dbname)
- // {
- // DataTable dt = new DataTable();
- // dt.Columns.Add("dbName");
- // dt.Columns.Add("Name");
- // dt.Columns.Add("Owner");
- // dt.Columns.Add("CreatDate");
- // dt.Columns.Add("PrimaryKey");
- // List<string> strlist = new List<string>();
- // SQLDMO.SQLServer srv = new SQLDMO.SQLServerClass();
- // srv.Connect(server, uid, pwd);
- // for (int i = 0; i < srv.Databases.Count; i++)
- // {
- // if (srv.Databases.Item(i + 1, "dbo").Name == dbname)
- // {
- // SQLDMO._Database db = srv.Databases.Item(i + 1, "dbo");
- // for (int j = 0; j < db.Tables.Count; j++)
- // {
- // strlist.Add(db.Tables.Item(j + 1, "dbo").Name);
- // DataRow dr = dt.NewRow();
- // ///表所属数据库
- // dr["dbName"] = db.Name;
- // ///获取表名
- // dr["Name"] = db.Tables.Item(j + 1, "dbo").Name;
- // ///获取表的所有者
- // dr["Owner"] = db.Tables.Item(i + 1, "dbo").Owner;
- // ///获取表的创建日期
- // dr["CreatDate"] = db.Tables.Item(i + 1, "dbo").CreateDate;
- // ///获取表的主键
- // dr["PrimaryKey"] = db.Tables.Item(i + 1, "dbo").PrimaryKey;
- // dt.Rows.Add(dr);
- // }
- // }
- // }
- // return strlist;
- // }
- // #region 得到数据库里表的字段
- // //创建列信息表
- // public DataTable CreateColumnTable()
- // {
- // DataTable table = new DataTable();
- // DataColumn col;
- // col = new DataColumn();
- // col.DataType = Type.GetType("System.String");
- // col.ColumnName = "colorder";
- // table.Columns.Add(col);
- // col = new DataColumn();
- // col.DataType = Type.GetType("System.String");
- // col.ColumnName = "ColumnName";
- // table.Columns.Add(col);
- // col = new DataColumn();
- // col.DataType = Type.GetType("System.String");
- // col.ColumnName = "TypeName";
- // table.Columns.Add(col);
- // col = new DataColumn();
- // col.DataType = Type.GetType("System.String");
- // col.ColumnName = "Length";
- // table.Columns.Add(col);
- // col = new DataColumn();
- // col.DataType = Type.GetType("System.String");
- // col.ColumnName = "Preci";
- // table.Columns.Add(col);
- // col = new DataColumn();
- // col.DataType = Type.GetType("System.String");
- // col.ColumnName = "Scale";
- // table.Columns.Add(col);
- // col = new DataColumn();
- // col.DataType = Type.GetType("System.String");
- // col.ColumnName = "IsIdentity";
- // table.Columns.Add(col);
- // col = new DataColumn();
- // col.DataType = Type.GetType("System.String");
- // col.ColumnName = "isPK";
- // table.Columns.Add(col);
- // col = new DataColumn();
- // col.DataType = Type.GetType("System.String");
- // col.ColumnName = "cisNull";
- // table.Columns.Add(col);
- // col = new DataColumn();
- // col.DataType = Type.GetType("System.String");
- // col.ColumnName = "defaultVal";
- // table.Columns.Add(col);
- // col = new DataColumn();
- // col.DataType = Type.GetType("System.String");
- // col.ColumnName = "deText";
- // table.Columns.Add(col);
- // return table;
- // }
- // #endregion
- // public object GetColumnName(string dbname, string tablename)
- // {
- // #region 创建表结构
- // DataTable dt = new DataTable();
- // dt.Columns.Add("dbName");
- // dt.Columns.Add("TableName");
- // dt.Columns.Add("Name");
- // dt.Columns.Add("PrimaryKey");
- // dt.Columns.Add("Keys");
- // dt.Columns.Add("Triggers");
- // dt.Columns.Add("Indexs");
- // dt.Columns.Add("Rows");
- // dt.Columns.Add("Columns");
- // #endregion
- // SQLDMO.SQLServer srv = new SQLDMO.SQLServerClass();
- // List<string[]> list = new List<string[]>();
- // srv.Connect(server, uid, pwd);
- // try
- // {
- // //获得表的信息:
- // //SQLDMO.Tables oTbs = srv.Databases.Item(dbname, "owner").Tables;
- // //SQLDMO.Table oTb = new SQLDMO.TableClass();
- // //oTb = (SQLDMO.Table)oTbs.Item(tablename, "owner");
- // //或
- // SQLDMO.Table oTb = (SQLDMO.Table)srv.Databases.Item(dbname, "dbo").Tables.Item(tablename, "dbo");
- // // 获得字段的信息:
- // SQLDMO.Column oField = new SQLDMO.ColumnClass();
- // foreach (object o in oTb.Columns)
- // {
- // string[] oList = new string[10];
- // oField = (SQLDMO.Column)o;
- // oList[0] = oField.Name;
- // oList[1] = oField.Datatype;
- // oList[2] = oField.Length.ToString();
- // oList[3] = oField.InPrimaryKey.ToString();
- // oList[4] = oField.NumericScale.ToString();
- // oList[5] = oField.Identity.ToString();
- // oList[6] = oField.IdentitySeed.ToString();
- // list.Add(oList);
- // DataRow dr = dt.NewRow();
- // dr["dbName"] = dbname;
- // dr["TableName"] = tablename;
- // dr["Name"] = oField.Name;
- // dr["PrimaryKey"] = oField.InPrimaryKey.ToString();
- // dr["Keys"] = oField.ListKeys();
- // }
- // }
- // catch (Exception ex)
- // {
- // // log.WriteException(ex);
- // }
- // finally
- // {
- // srv.DisConnect();
- // }
- // return list;
- // }
- // //public DataTable GetTableColumnName(string dbname)
- // //{
- // // DataTable dt = CreateColumnTable();
- // // List<string> strlist = new List<string>();
- // // SQLDMO.SQLServer srv = new SQLDMO.SQLServerClass();
- // // srv.Connect(server, uid, pwd);
- // // for (int i = 0; i < srv.Databases.Count; i++)
- // // {
- // // if (srv.Databases.Item(i + 1, "dbo").Name == dbname)
- // // {
- // // SQLDMO._Database db = srv.Databases.Item(i + 1, "dbo");
- // // for (int j = 0; j < db.Tables.Count; j++)
- // // {
- // // SQLDMO._Column col = db.Tables.Item(j + 1, "dbo");
- // // for(int k=0;k<co)
- // // //strlist.Add(db.Tables.Item(j + 1, "dbo").Name);
- // // }
- // // }
- // // }
- // // return dt;
- // //}
- // /// <summary>
- // /// 获取数据库中的存储过程
- // /// </summary>
- // /// <param name="dbname"></param>
- // /// <returns></returns>
- // public List<string> GetProcedures(string dbname)
- // {
- // List<string> strlist = new List<string>();
- // SQLDMO.SQLServer srv = new SQLDMO.SQLServerClass();
- // srv.Connect(server, uid, pwd);
- // for (int i = 0; i < srv.Databases.Count; i++)
- // {
- // if (srv.Databases.Item(i + 1, "dbo").Name == dbname)
- // {
- // SQLDMO._Database db = srv.Databases.Item(i + 1, "dbo");
- // for (int j = 0; j < db.StoredProcedures.Count; j++)
- // {
- // strlist.Add(db.StoredProcedures.Item(j + 1, "dbo").Name);
- // }
- // }
- // }
- // return strlist;
- // }
- // /// <summary>
- // /// 获取数据库中的视图
- // /// </summary>
- // /// <param name="dbname"></param>
- // /// <returns></returns>
- // public List<string> GetView(string dbname)
- // {
- // List<string> strlist = new List<string>();
- // SQLDMO.SQLServer srv = new SQLDMO.SQLServerClass();
- // srv.Connect(server, uid, pwd);
- // for (int i = 0; i < srv.Databases.Count; i++)
- // {
- // if (srv.Databases.Item(i + 1, "dbo").Name == dbname)
- // {
- // SQLDMO._Database db = srv.Databases.Item(i + 1, "dbo");
- // for (int j = 0; j < db.Views.Count; j++)
- // {
- // strlist.Add(db.Views.Item(j + 1, "dbo").Name);
- // }
- // }
- // }
- // return strlist;
- // }
- // /**/
- // /// <summary>
- // /// 数据库备份
- // /// </summary>
- // /// <returns>备份是否成功</returns>
- // public bool DbBackup(string filepath)
- // {
- // string path = CreatePath(filepath);
- // SQLDMO.Backup oBackup = new SQLDMO.BackupClass();
- // SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
- // try
- // {
- // oSQLServer.LoginSecure = false;
- // oSQLServer.Connect(server, uid, pwd);
- // oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
- // oBackup.Database = database;
- // oBackup.Files = path;
- // oBackup.BackupSetName = database;
- // oBackup.BackupSetDescription = "数据库备份";
- // oBackup.Initialize = true;
- // oBackup.SQLBackup(oSQLServer);
- // return true;
- // }
- // catch (Exception ex)
- // {
- // return false;
- // throw ex;
- // }
- // finally
- // {
- // oSQLServer.DisConnect();
- // }
- // }
- // /**/
- // /// <summary>
- // /// 数据库恢复BackupRestore
- // /// </summary>
- // public string DbRestore(string filepath) //恢复代码
- // {
- // if (exepro() != true)//执行存储过程
- // {
- // return "操作失败";
- // }
- // else
- // {
- // SQLDMO.Restore oRestore = new SQLDMO.RestoreClass();
- // SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
- // try
- // {
- // exepro();
- // oSQLServer.LoginSecure = false;
- // oSQLServer.Connect(server, uid, pwd);
- // oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
- // oRestore.Database = database;
- // /**/
- // ///自行修改
- // if (filepath.IsEmpty())
- // oRestore.Files = @"d:\aaa\lucas_db_20130707.BAK";
- // else
- // oRestore.Files = filepath;
- // oRestore.FileNumber = 1;
- // oRestore.ReplaceDatabase = true;
- // oRestore.SQLRestore(oSQLServer);
- // return "ok";
- // }
- // catch (Exception e)
- // {
- // return "恢复数据库失败";
- // throw e;
- // }
- // finally
- // {
- // oSQLServer.DisConnect();
- // }
- // }
- // }
- // /**/
- // /// <summary>
- // /// 杀死当前库的所有进程
- // /// </summary>
- // /// <returns></returns>
- // private bool exepro()
- // {
- // SqlConnection conn1 = new SqlConnection("server=" + server + ";uid=" + uid + ";pwd=" + pwd + ";database=master");
- // SqlCommand cmd = new SqlCommand("KillSpid", conn1);
- // cmd.CommandType = CommandType.StoredProcedure;
- // cmd.Parameters.Add("@dbname", "lucas");
- // try
- // {
- // conn1.Open();
- // cmd.ExecuteNonQuery();
- // return true;
- // }
- // catch (Exception ex)
- // {
- // return false;
- // }
- // finally
- // {
- // conn1.Close();
- // }
- // }
- //}
- }
|