Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

SqlDataSourceEnumerator.Instance.GetDataSources() tidak menemukan contoh SQL server 2008 lokal

Anda melewatkan server yang tidak bernama instance. Ubah kode Anda:

public class SqlServerInstance
{
    public string ServerInstance { get; set; }
    public string Version { get; set; } 
}

public static List<SqlServerInstance> LocateSqlInstances()
{
    List<SqlServerInstance> results = new List<SqlServerInstance>();

    using (DataTable sqlSources = SqlDataSourceEnumerator.Instance.GetDataSources())
    {
        foreach (DataRow source in sqlSources.Rows)
        {
            string servername;
            string instancename = source["InstanceName"].ToString();

            if (!string.IsNullOrEmpty(instancename))
            {
                servername =  source["ServerName"].ToString() + '\\' + instancename;
            }
            else
            {
                servername = source["ServerName"].ToString();
            }

            results.Add(new SqlServerInstance (){ ServerInstance = servername, Version = source["Version"].ToString() });
        }
    }

    return results;
}

Harap Catatan:SqlDataSourceEnumerator.Instance.GetDataSources() memiliki kekurangan:

  • Tunduk pada aturan firewall (TCP/IP 1433 dan UDP 1434 yang Diblokir)
  • Tidak menemukan SQL Server jika SQL Browser mati
  • Tidak menemukan SQL Server jika disembunyikan
  • Isi daftar tidak dijamin dapat diulang (karena batas waktu). Bahkan, panggilan berikutnya sangat mungkin untuk memberikan daftar yang berbeda tergantung pada jaringan I/O, kinerja server, jumlah server pada jaringan dan kendala tergantung waktu lainnya

Beberapa sumber mengatakan Anda harus melakukan 2 panggilan ke SqlDataSourceEnumerator.Instance.GetDataSources() ...

Referensi:

  • SqlDataSourceEnumerator.Instance; tidak mengembalikan semua instance
  • EnumAvailableSqlServers atau SqlDataSourceEnumerator - Daftar Database yang tersedia salah
  • Menghitung Server SQL
  • Mencantumkan Server SQL secara Terprogram


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 3 Cara Mendapatkan Skema Hasil yang Ditetapkan di SQL Server

  2. Dapatkan hari terakhir dalam sebulan di SQL

  3. Cara Menemukan Kumpulan Basis Data yang Didukung oleh Instans SQL Server Anda

  4. pisahkan nilai yang dipisahkan koma dan simpan dalam tabel di server sql

  5. Cara Mengembalikan Nilai Kode ASCII untuk Karakter yang diberikan di SQL Server