public string GetExpectedNameForParent(string ParentTable)
 {
     try
     {
         SQLDMO.Database  dbCurrent = (SQLDMO.Database)Connection.Databases.Item(this.Database, Connection);
         Table            pTable    = (Table)dbCurrent.Tables.Item(ParentTable, Connection);
         ColumnCollection c         = pTable.Columns;
         return(c.Item(2).Name);
     }
     catch
     {
         return("");
     }
 }
示例#2
0
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
    protected void  viewTable_Click(object sender, EventArgs e)
    {
        for (int i = 1; i <= SqlEXPRESS.Databases.Count; i++)
        {
            if (SqlEXPRESS.Databases.Item(i, "dbo").Name == databaseList.SelectedItem.ToString())
            {
                SQLDMO.Database dataObj = (SQLDMO.Database)SqlEXPRESS.Databases.Item(i, "dbo");

                tableList.Items.Clear();

                for (int j = 1; j <= dataObj.Tables.Count; j++)
                {
                    tableList.Items.Add(dataObj.Tables.Item(j, "dbo").Name);
                }
            }
        }
        tableList.SelectedIndex = 0;
        tableList.Visible       = true;
        detail.Visible          = true;
    }
示例#3
0
文件: NetUtil.cs 项目: VqSoft/ZYFC
        /// <summary>
        /// 使用SQL DMO恢复数据库
        /// </summary>
        /// <param name="serverName"></param>
        /// <param name="userName"></param>
        /// <param name="pwd"></param>
        /// <param name="dbName"></param>
        /// <param name="dbBakFileName"></param>
        public void RestoreSqlDb(string serverName, string userName, string pwd, string dbName, string dbBakFileName)
        {
            string dbFileDir = string.Empty;

            SQLDMO.SQLServer sqlServerObj = new SQLDMO.SQLServer();
            SQLDMO.Database dbObj = new SQLDMO.Database();
            SQLDMO.DBFile dbFileObj = new SQLDMO.DBFile();
            SQLDMO.LogFile logFileObj = new SQLDMO.LogFile();

            try
            {
                System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor;
                sqlServerObj.Connect(serverName, userName, pwd);
                dbFileDir = sqlServerObj.Registry.SQLDataRoot + @"\DATA\";
                if (!Directory.Exists(dbFileDir))
                {
                    Directory.CreateDirectory(dbFileDir);
                }
            }
            catch (Exception exp)
            {
                throw new Exception("无法连接到Sql Server," + exp.Message, exp);
            }

            #region 属性设置
            try
            {
                dbObj.Name = dbName;

                dbFileObj.Name = dbBakFileName;
                dbFileObj.PhysicalName = dbFileDir + dbName + ".mdf";
                dbFileObj.PrimaryFile = true;
                dbFileObj.Size = 3;
                dbFileObj.FileGrowthType = SQLDMO.SQLDMO_GROWTH_TYPE.SQLDMOGrowth_MB;
                dbFileObj.FileGrowth = 1;

                dbObj.FileGroups.Item("PRIMARY").DBFiles.Add(dbFileObj);

                logFileObj.Name = dbName + "Log";
                logFileObj.PhysicalName = dbFileDir + dbName + "_log.ldf";
                logFileObj.Size = 3;
                dbObj.TransactionLog.LogFiles.Add(logFileObj);

                sqlServerObj.Databases.Add(dbObj);

            }
            catch (Exception exp)
            {
                throw new Exception("数据库属性设置失败," + exp.Message, exp);
            }
            #endregion

            #region 数据库恢复操作
            try
            {
                SQLDMO.Restore restoreObj = new SQLDMO.RestoreClass();

                restoreObj.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;

                restoreObj.Database = dbName;
                //是否覆盖原数据库
                restoreObj.ReplaceDatabase = true;
                restoreObj.Files = dbBakFileName;// @"\data\mdernode.bak";

                //restoreObj.FileNumber = 1;
                restoreObj.UnloadTapeAfter = true;

                restoreObj.SQLRestore(sqlServerObj);
            }
            catch (Exception exp)
            {
                throw new Exception("数据库恢复失败," + exp.Message, exp);
            }
            finally
            {
                sqlServerObj.DisConnect();
            }
            #endregion
        }