SqlDmo有关数据库管理

来源:互联网 发布:python range(7) 编辑:程序博客网 时间:2024/05/16 16:17

#region 当前局域网中可用的SQL server服务器获取  
  private ArrayList GetAvailableSqlServers()
  {
   ArrayList arrServer=new ArrayList();
   SQLDMO.Application SqlApp=new SQLDMO.ApplicationClass();

   try
   {
    SQLDMO.NameList SqlServers=SqlApp.ListAvailableSQLServers();//当前可用Sql Servers名称

    for(int i=1;i<SqlServers.Count;i++)
    {
     object objServer=SqlServers.Item(i);//索引方法
     if(objServer!=null)
      arrServer.Add(objServer.ToString());
    }
   }
   catch(Exception err)
   {
    throw new Exception(err.Message);
   }

   return arrServer;
  }
  #endregion

  #region 连接服务器
  private bool ConnectServer(string strServerName, string strUser,string strPwd)
  {
   SQLDMO.SQLServer server=new SQLDMO.SQLServerClass();

   try
   {
    server.Connect(strServerName,strUser,strPwd);//连接服务器
    return true;
   }
   catch
   {
    return false;
   }

  }

  private bool ConnectServer(string strServerName, string strUser,string strPwd,out SQLDMO.SQLServer ser)
  {
   SQLDMO.SQLServer server=new SQLDMO.SQLServerClass();
   ser=server;
   try
   {    
    server.Connect(strServerName,strUser,strPwd);//连接服务器
    return true;
   }
   catch
   {
    return false;
   }
  }
  #endregion

  private void BindServer(ArrayList arr)
  {
   System.Collections.IEnumerator Enum=arr.GetEnumerator();

   while(Enum.MoveNext())
   {
    cboServer.Items.Add(Enum.Current.ToString());
   }
  }
  private void btnConnLocal_Click(object sender, System.EventArgs e)
  {
   string IP=cboServer.Text.Trim();
   string User=txtUserName.Text.Trim();
   string Pwd=txtPwd.Text.Trim();
   
   
   if(ConnectServer(IP,User,Pwd,out server))
   {
    MessageBox.Show("连接成功");
    ControlDisplay(true);
   }
   else
   {
    MessageBox.Show("服务器不存在或服务器拒绝");
   }   

  }

  
  private void ControlDisplay(bool statu)
  {
   btnDatas.Enabled=statu;
   btnBack.Enabled=statu;
   
  }

  private void DataBack_Load(object sender, System.EventArgs e)
  {
   ControlDisplay(false);
   BindServer(GetAvailableSqlServers());
  }

  private void btnDatas_Click(object sender, System.EventArgs e)
  {
   lstShow.Items.Clear();
   for(int i=1;i<server.Databases.Count;i++)
   {
    lstShow.Items.Add(server.Databases.Item(i,null).Name);
   }
   
  }

  private void lstShow_SelectedIndexChanged(object sender, System.EventArgs e)
  {
   int index=((ListBox)sender).SelectedIndex;
   SQLDMO.Database db=(SQLDMO.Database)server.Databases.Item(index,"dbo");
   lstTables.Items.Clear();
   lstViews.Items.Clear();
   lstStoreds.Items.Clear();

   //表
   for(int i=1;i<db.Tables.Count;i++)
   {
    lstTables.Items.Add(db.Tables.Item(i,null).Name);  
   }

   //储存过程
   for(int i=1;i<db.StoredProcedures.Count;i++)
   {   
    lstStoreds.Items.Add(db.StoredProcedures.Item(index,null).Name);  
   }

   //视图
   for(int i=1;i<db.Views.Count;i++)
   {   
    lstViews.Items.Add(db.Views.Item(index,null).Name);
   }
  } 

原创粉丝点击