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(""); } }
/// <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; }
/// <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 }