请问如何获取局域网中的SQLSERVER服务器,服务器的中数据库列表,数据库中的数据表列表

解决方案 »

  1.   

    /// <summary>
    /// 获取SQL服务器列表
    /// </summary>
    public string[] GetSqlServerList()
    {
    SQLDMO.ApplicationClass Csql = new SQLDMO.ApplicationClass();
    try
    {
    SQLDMO.NameList sqlList = Csql.ListAvailableSQLServers();
    int iCount = sqlList.Count;
    string[] sArray = new string[iCount];
    for(int i=0;i<iCount;i++)
    {
    string s = sqlList.Item(i+1);
    sArray[i] = s;
    }
    return sArray;
    }
    catch(Exception tt)
    {
    MessageBox.Show("取数据库服务器列表出错:"+tt.Message); 
    }
    finally 

    Csql.Quit() ; 

    return new string[]{""};
    }
      

  2.   

    /// <summary>
    /// 获取数据库列表
    /// </summary>
    public ArrayList GetDataBaseList(string strServerName,string strUserName,string strPwd)
    {
    ArrayList alDbs = new ArrayList() ; 
    SQLDMO.Application sqlApp = new SQLDMO.ApplicationClass() ; 
    SQLDMO.SQLServer svr = new SQLDMO.SQLServerClass() ; 
    try 

    svr.Connect(strServerName,strUserName,strPwd);
    foreach(SQLDMO.Database db in svr.Databases) 

    if((db.Name!=null) && (db.SystemObject == false))
    alDbs.Add(db.Name);


    catch(Exception e) 

    MessageBox.Show("连接数据库出错:"+e.Message) ; 

    finally 

    svr.DisConnect() ; 
    sqlApp.Quit() ; 

    return alDbs ;  }