PDA

View Full Version : Làm thế nào để lấy một thể hiện của SQL Sever 2000 bằng C#?



saddream1985
24-11-2007, 12:19
Máy của mình cài Visual Studio 2005 và mình cài SQL Server 2000. Để lấy thể hiện của các server trên máy cục bộ,mình làm như thế này: đầu tiên mình vào Computer Management để coi thì có 2 server một là .(local) và một là PC1\SQLExpress; sau đó mình bật SQL Server Browser và tắt firewall đi và tiếp đó mình dùng câu lệnh SmoApplication.EnumAvailablesSqlServers(true) thì nó chỉ hiện lên SQLEXPRESS mà thôi. Mình dùng cách thứ 2 là vào geredit để tìm đường dẫn HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\InstalledInstances, nhưng ở đây không có InstalledInstances mà chỉ có Instance Names và trong Instance Name cũng chỉ có SQLEXPRESS. Vậy cho hỏi để lấy tất cả thể hiện server thì mình có thể dùng cách nào?

malefly
24-11-2007, 23:01
Vấn đề về Instance trong "Ét vi eo 2000" mình xin trả lời như sau:

-mình có thể cài 16 Instance trên 1 máy tính
-default instances and named instances mặc định là (local) dấu "." hoặc là tên computer

.Làm thế nào để ta biết được tên instances khi ta đã cài

Bạn có thể vào địa chỉ HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\{InstanceName}\MSSQLServer\Setup\SQLPath trong Register để xem.

Q. Làm thế nào để biết có tất cả bao nhiêu Instances đã được cài lên máy

A.Bạn hãy vào Register địa chỉ sau:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsof t SQL Server.

Nếu tất cả các câu trên ko thỏa câu hỏi bạn. Bạn hãy cài lại "Ét vi eol" và chọn íntance name sao cho dễ nhớ

vd: sql2000

saddream1985
25-11-2007, 08:21
Những gì bạn nói mình đã kiểm tra lại, nhưng cũng chẳng tìm thấy cái local. Nhưng dù sao cũng cám ơn bạn nhiều

harzix
30-11-2007, 21:35
C# Code:

DataTable ds = System.Data.Sql.SqlDataSourceEnumerator.Instance.G etDataSources();

Danh sách các SQL Server Instances lưu trong <ds>.

Cái này đúng ý không?

solnt
08-12-2007, 15:48
C# Code:

DataTable ds = System.Data.Sql.SqlDataSourceEnumerator.Instance.G etDataSources();

Danh sách các SQL Server Instances lưu trong <ds>.

Cái này đúng ý không?

1 lưu ý là câu trả lời ở trên chỉ có trong .net framework 3.0 :|

harzix
09-12-2007, 12:41
Hix, pác đang dùng .NET Framework 3.0 và chưa dùng 2.0 bao giờ à?

Xem phần Version Information:

http://msdn2.microsoft.com/en-us/library/system.data.sql.sqldatasourceenumerator.aspx

Để biết thêm chi tiết, :-P

solnt
10-12-2007, 09:26
Thấy rồi, test trên vs 2003 dùng 1.1 nên không thấy ...................