Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 12 kết quả

Đề tài: Không thể hiển thị server name của SQl Server lên combobox???

  1. #1
    Ngày gia nhập
    12 2010
    Bài viết
    683

    Unhappy Không thể hiển thị server name của SQl Server lên combobox???

    Vân tôi đang làm một demo về connect, backup, restore, nâng cao hơn là load sever name + databases lên combobox nhưng mọi phương pháp đều sụp đổ hoàn toàn(Vì cái nâng cao đó)...

    Vì Server name khi load lên là null???

    Tôi đã thử dùng datagridview để load lên hết nhưng tất cả các trường vẫn không có gì??

    Trong khi dùng SQL Managerment thì có server name đầy đủ???

    Tôi nghĩ là không phải là do code mà do vấn đề gì đó???

    Ai có thể giúp tôi về vấn đề này??

    Code thì rất nhiều nhưng ko thể nào load lên dc toàn là null???

    Đây là code load server name lên datagridview

    Visual C# Code:
    1. //Thư viện cần thiết
    2.  
    3. using Microsoft.SqlServer.Management.Smo;
    4. using Microsoft.SqlServer.Management.Common;
    5.  
    6. private void Form1_Load(object sender, EventArgs e)
    7.         {
    8.             // Create a DataTable where we enumerate the available servers
    9.             //DataTable dtServers = SmoApplication.EnumAvailableSqlServers(true);
    10.             //// If there are any servers at all
    11.             //if (dtServers.Rows.Count > 0)
    12.             //{
    13.             //    // Loop through each server in the DataTable
    14.             //    foreach (DataRow drServer in dtServers.Rows)
    15.             //    {
    16.             //        // Add the name to the combobox
    17.             //        cmbServer.Items.Add(drServer["Name"]);
    18.             //    }
    19.             //}
    20.             DataTable dt = SmoApplication.EnumAvailableSqlServers();
    21.             dataGridView1.DataSource = dt;
    22.             //cmbServer.DisplayMember = "Name";
    23.            
    24.            //Humk! Code đủ mọi cách mà vẫn vậy???(:-)??
    25.  
    26.         }

    Dưới đây là ảnh demo sau khi đã load lên combobox và DatagridView vẫn là null!!
    Attached Thumbnails Attached Thumbnails Demo.JPG  
    Đã được chỉnh sửa lần cuối bởi cchangkhongayngo : 13-09-2011 lúc 06:02 PM.

  2. #2
    Ngày gia nhập
    09 2011
    Nơi ở
    TP Hồ Chí Minh
    Bài viết
    37

    Cái này hồi đó mình có làm rồi, và không dùng
    Code:
    SmoApplication.EnumAvailableSqlServers()
    (vì không biết)
    Mình xài cái này đơn giản vả dễ hiểu hơn nhiều
    Code:
    select * from sysdatabases
    where dbid > 4
    p/s: ta là gấu

  3. #3
    Ngày gia nhập
    12 2010
    Bài viết
    683

    Trích dẫn Nguyên bản được gửi bởi haiduong87 Xem bài viết
    Code:
    select * from sysdatabases
    where dbid > 4
    Rõ hơn một chút đi bạn!

    Bỏ cái đó ở đâu vậy??

  4. #4
    Ngày gia nhập
    11 2008
    Nơi ở
    An Giang
    Bài viết
    502

    Mình thường lấy ServerName bằng tên máy tính + với Instance Name của loại SQL đó trong Registry.
    Bạn vào Registry tìm đến khóa HKey_Local_Machine\Software\Microsoft\Microsoft SQL Server. Thấy giá trị của Value "InstalledInstances". Trong đó chứa tất cả Instance Name của SQL.(Theo mình là thế).
    Hi vọng giúp đc bạn

  5. #5
    Ngày gia nhập
    09 2011
    Nơi ở
    TP Hồ Chí Minh
    Bài viết
    37

    Trích dẫn Nguyên bản được gửi bởi cchangkhongayngo Xem bài viết
    Rõ hơn một chút đi bạn!

    Bỏ cái đó ở đâu vậy??
    Vậy tưởng là rõ lắm rồi chứ?
    Thì dùng ADO.NET kết nối tới database master của server đó, rồi chạy câu select command đó sẽ list được tất cả database trong server đó mà. Cái này thì là kết nối với database đơn giản, bảo đảm chạy được.
    p/s: ta là gấu

  6. #6
    Ngày gia nhập
    08 2011
    Nơi ở
    Yên Bái- Hà Nội
    Bài viết
    961

    Mặc định Không thể hiển thị server name của SQl Server lên combobox???

    Trích dẫn Nguyên bản được gửi bởi haiduong87 Xem bài viết
    Cái này hồi đó mình có làm rồi, và không dùng
    Code:
    SmoApplication.EnumAvailableSqlServers()
    (vì không biết)
    Mình xài cái này đơn giản vả dễ hiểu hơn nhiều
    Code:
    select * from sysdatabases
    where dbid > 4
    Chiêu này của bạn hay đấy. thanks

  7. #7
    Ngày gia nhập
    12 2010
    Bài viết
    683

    Thanks bạn haiduong87 và các bạn rất nhiều!

    Rồi ok! Vậy là mình đã giải quyết xong load alls databases lên hết rồi.

    Vấn đề chủ yếu là load tên server lên combobox

    Nếu nói như bạn huuhung thì làm sao để lấy value từ khóa đó ra??

    Server name hiện tại của mình là FOREVER-TUANPRO\SQLEXPRESS

    Có ai có cao kiến nữa ko??
    Attached Thumbnails Attached Thumbnails demo.JPG  
    Đã được chỉnh sửa lần cuối bởi cchangkhongayngo : 13-09-2011 lúc 09:04 PM.

  8. #8
    Ngày gia nhập
    09 2011
    Nơi ở
    TP Hồ Chí Minh
    Bài viết
    37

    Trích dẫn Nguyên bản được gửi bởi cchangkhongayngo Xem bài viết
    Thanks bạn haiduong87 và các bạn rất nhiều!

    Rồi ok! Vậy là mình đã giải quyết xong load alls databases lên hết rồi.

    Vấn đề chủ yếu là load tên server lên combobox

    Có ai gợi ý nữa ko??
    Cái này thì không biết gợi ý thế nào, chỉ có góp ý thế này:
    - Chỉ khi nào ấn vào connect thì mới nên load các database của server đó lên, làm vậy có vẻ hợp lý hơn.
    - Việc load tên server lên combobox là không thể vì cái này là dạng dữ liệu không lưu trữ. Bạn muốn làm việc với database nào thì bạn phải gõ tên database và thông tin đăng nhập vào.
    - Nếu vẫn muốn sử dụng combobox để load tên server, thì lúc này thiết kế của phần mềm sẽ thay đổi.
    • Nôm na là bạn có một cái master database lưu trữ thông tin của các database server con trong hệ thống.
    • Có một bảng trong master database để lưu trữ thông tin các database server (Name, Login Type, Username, Password)
    • Đến đây thì chỉ lấy tên các database server đổ vào combobox, cái này thì đơn giản rồi.

    Phần góp ý mình chỉ có nhiêu đó. Bạn xem xét lại thử có cần thiết phải làm load tên server vào combobox không rồi tự triển khai nhé. Project bạn đang làm khá là hay đó, tự viết cái tool cho mình xài, nhanh gọn hơn vào studio để thao tác.

    Chúc vui vẻ
    p/s: ta là gấu

  9. #9
    Ngày gia nhập
    07 2009
    Nơi ở
    TP HCM
    Bài viết
    91

    Được hỗ trợ hết rồi
    - Trả ra cái DataTable
    Code:
          public DataTable LoadServerName()
          {
                return SmoApplication.EnumAvailableSqlServers();
          }
    - Load lên combobox
    Code:
                DataTable dt = this.LoadServerName();
                foreach (DataRow row in dt.Rows)
                {
                    string name = row["Server"].ToString()+"\\"+row["Instance"].ToString();
                    cbbServerName.Items.Add(name);
                }
    Thế là hiện tất cả các Server name và Instance
    Nothing is Impossible

  10. #10
    Ngày gia nhập
    12 2010
    Bài viết
    683

    Trích dẫn Nguyên bản được gửi bởi namthienlong2001 Xem bài viết
    Code:
          public DataTable LoadServerName()
          {
                return SmoApplication.EnumAvailableSqlServers();
          }
    Từ đầu thì mình cũng dùng như trên nhưng load toàn là rỗng!!

    Mình đã điều tra ra nguyên nhân là khi server đang chạy thì load lên toàn là rỗng!!

    Mà mình nghĩ đến việc user sử dụng app của mình mà biết tên server name của họ đâu mà nhập!! là mình điên lên

    Mọi việc sẽ rất đơn giản khi mình lấy dc value data của InstalledInstances có value là "SQLEXPRESS"

    Vậy ai có thể chỉ cho mình cách lấy Value data của nó bằng C#!!!

    Các tài liệu về registry ko có phần lấy value data --> chỉ có lấy name của keys thôi
    Đã được chỉnh sửa lần cuối bởi cchangkhongayngo : 14-09-2011 lúc 09:55 AM.

Các đề tài tương tự

  1. Load các Server hiện có lên Combobox C#?
    Gửi bởi tui so trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 6
    Bài viết cuối: 12-11-2013, 01:55 PM
  2. Deploy một project MVC3 lên server hỗ trợ SQL Server ?
    Gửi bởi lqv trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 0
    Bài viết cuối: 05-09-2013, 01:35 AM
  3. ADO.NET Deploy một project MVC3 lên server hỗ trợ SQL Server ?
    Gửi bởi 9xnangdong trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 28-01-2013, 10:45 AM
  4. Chuyển từ sql server sang sql server compact trong visual studio 2010
    Gửi bởi ndnhan trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 18-11-2012, 12:52 PM
  5. Gửi dữ liệu từ chương trình C# lên server ?
    Gửi bởi okitakimura trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 26-02-2011, 07:45 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn