Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: kết nối cơ sở dữ liệu tới SQL 2000 như thế nào?

  1. #1
    Ngày gia nhập
    02 2007
    Nơi ở
    Thủ Đức - TPHCM
    Bài viết
    49

    Angry kết nối cơ sở dữ liệu tới SQL 2000 như thế nào?

    mình đang xây dựng một ứng dụng nhỏ có kết nối csdl dưới mô hình sqlserver2000 nhưng mình không biét làm thế nào mà mình có thể mang cả chương trình qua máy khác chạy trong khi vẫn có thể truy xuất csdl được.mong các bạn nhanh chóng giúp mình với.Các bạn có thể chỉ cho mình cách tạo cái liên kết động đến csdl không mình đã thêm csdl đó vào proJect của mình rồi ,đã làm theo cách của anh Nerverlland rồi nhưng không đựoc giúp đỡ.mang các bạn chỉ giáo giùm

  2. #2
    Ngày gia nhập
    06 2007
    Nơi ở
    TP.HCM
    Bài viết
    113

    Trích dẫn Nguyên bản được gửi bởi minhitcn2 Xem bài viết
    mình đang xây dựng một ứng dụng nhỏ có kết nối csdl dưới mô hình sqlserver2000 nhưng mình không biét làm thế nào mà mình có thể mang cả chương trình qua máy khác chạy trong khi vẫn có thể truy xuất csdl được.mong các bạn nhanh chóng giúp mình với.Các bạn có thể chỉ cho mình cách tạo cái liên kết động đến csdl không mình đã thêm csdl đó vào proJect của mình rồi ,đã làm theo cách của anh Nerverlland rồi nhưng không đựoc giúp đỡ.mang các bạn chỉ giáo giùm
    Bạn tạo một form login với dạng sau: 1textbox là tên máy đang sử dụng, 1 textbox là tên csdl, 1 text là tên đăng nhập vào SQL server, 1textbox là pass đăng nhập vào sql.

    Khi đưa đi máy khác chỉ cần điền đầy đủ thông tin vào là ok. Nhưng chương trình chỉ sử dụng 1 CSDL nên tên CSDL đã có sẵn vậy thì bạn để mặc định. Còn tên máy đang sử dụng thì trong C# bạn có thể dùng lệnh sau để lấy ra.
    SystemInformation.ComputerName;
    user đăng nhập vào SQL thì mặc định là: sa, bạn cứ để mặc định như vậy là OK. Tới máy khác chỉ cần nhập một vài thông tin vào là xong thôi.

    Còn vấn đề tới máy khác phải attach hay restore CSDL vào nữa thì cho chương trình làm luôn. Tớ thì dùng một vài thủ thuật là thực thi câu lệnh SQL trên chương trình. (Trong C# hình như cũng có mà tớ chưa tìm hiểu)

    Ý tưởng thế này: CSDL master thì sql server nào cũng có. Chuổi kết nối đã thực hiện được như ở trên vậy thì đầu tiên đăng nhập sử dụng vào CSDL master. Sau đó mở table systemdatabases trong CSDL master lên kiểm tra xem có tên CSDL của chúng ta chưa. Có rồi thì đóng kết nối cũ và chuyển sang kết nối vào CSDL của chúng ta. Còn nếu chưa thì attach từ 2 file (.mdf, .ldf). Còn nếu từ 1 file backup (.bak) thì dùng mấy câu lệnh restore.

    Lệnh SQL:
    Code:
    //dùng store procedure để attach đầy đủ 2 file .mdf và .ldf
    sp_attach_db
         @dbname = 'tên CSDL',
         @filename1= 'đường dẫn đến file .mdf',
         @filename2= 'dường dẫn đến file .ldf'
    
    //attach 1 file .mdf còn file .ldf hệ thống tự tạo ra
    sp_attach_single_file_db
         @dbname = 'tên csdl',
         @physname = 'đường dẫn đến file .mdf'
    
    //dùng lệnh restore từ file .bak
    RESTORE DATABASE { database_name | @database_name_var } 
    [ FROM < backup_device > [ ,...n ] ] 
    [ WITH 
        [ RESTRICTED_USER ] 
        [ [ , ] FILE = { file_number | @file_number } ] 
        [ [ , ] PASSWORD = { password | @password_variable } ] 
        [ [ , ] MEDIANAME = { media_name | @media_name_variable } ] 
        [ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ] 
        [ [ , ] MOVE 'logical_file_name' TO 'operating_system_file_name' ] 
                [ ,...n ] 
        [ [ , ] KEEP_REPLICATION ] 
        [ [ , ] { NORECOVERY | RECOVERY | STANDBY = undo_file_name } ] 
        [ [ , ] { NOREWIND | REWIND } ] 
        [ [ , ] { NOUNLOAD | UNLOAD } ] 
        [ [ , ] REPLACE ] 
        [ [ , ] RESTART ] 
        [ [ , ] STATS [ = percentage ] ] 
    ]
    
    //mấy cái để trong [] là có thể có hoặc không, ví dụ
    RESTORE DATABASE 'Tên CSDL'
    FROM 'Đường dẫn đến file Backup device'
    WITH
          NORECOVERY,
          STATS
    GO
    Vậy là xong rồi đó (cái này ngày xưa tớ làm bài tập lớn, chỉ cần báo cáo đến đây là ông thầy cho tớ 10 điểm luôn) he he....

    Gác Kiếm

  3. #3
    Ngày gia nhập
    07 2008
    Bài viết
    1

    bạn "Hoa mặt trời" nói rõ về cách tạo form kết nối với cách dùng thay cho kiểu kết nối cố định một CSDL được không ? cảm ơn bạn !

  4. #4
    Ngày gia nhập
    09 2007
    Bài viết
    724

    hàm Build connectingString
    PHP Code:

    public string BuildConnectionString()
            {            
                
    string sResult "";
                
    //neu khong co ip thi mac dinh la localhost
                
    if (sIP == "")
                {
                    
    sResult += "Data Source=.";
                }
                else
                {
                    
    sResult += "Data Source=" sIP;
                }
                
    sResult += "; Initial Catalog= " sDatabase ";";
                if(
    sUserName != "")
                {
                    
    sResult += "User Id = " sUserName "; Password = " sPassword ";";
                }
                return 
    sResult;
            } 
    code bên form connect:
    rất tiếc là mình không biết cách attach image làm sao nên mình không thể đưa lên đây form của mình được:
    nói chung form có 4 textbox.

    - để nhập tên server ->txtIP
    - để nhập tên database ->txtDatabase
    - để nhập UserName ->txtUserName
    - để nhập password ->txtPassword
    2 button
    - 1 cái để connect
    - 1 cái để exit

    PHP Code:
    private void ConnectToServer_Load(object senderEventArgs e)
            {
    //thiết lập các giá trị default cho form khi load
                
    txtDatabase.Text "Mydatabase";
                
    txtIP.Text "localhost";
                
    txtUserName.Text "sa";
                
    txtPassword.Text "password o day";
            }

            private 
    void btnConnection_Click(object senderEventArgs e)
            {
                
    CMyConnection con;
                
    con = new CMyConnection(txtDatabase.TexttxtIP.TexttxtUserName.TexttxtPassword.Text);
               
    // CMyFile f;
               // f = new CMyFile();
               // f.FileName = Application.StartupPath + "\\config.txt";
                //con.File = f;
                
    if (con.Connection() == true)
                {
                    
    //ghi xuong file de lan sau doc len
                    
                    
    string[] sBuff = { con.ConnectionString };
                   
    // f.WriteFile(sBuff);
                    //ghi
                    
    MessageBox.Show("Kết nối thành công""Thông báo");
                    
    con.Disconnection();
                    
    ConnectToServer.ActiveForm.Hide();
                    
    frmMain fMain = new frmMain();
                    
    fMain.con con;
                    
    fMain.ShowDialog();
                    
                    
                }
                else
                    
    MessageBox.Show("Kết nối không thành công\nVui lòng coi lại tên đăng nhập và mật khẩu""Thông báo");
            }

            private 
    void btnReset_Click(object senderEventArgs e)
            {
                if (
    MessageBox.Show("Bạn muốn kết thúc chương trình?""Thông báo"MessageBoxButtons.YesNoMessageBoxIcon.Exclamation) == DialogResult.Yes)
                    
    Application.Exit();
            }
            
        } 

  5. #5
    Ngày gia nhập
    04 2010
    Bài viết
    6

    Mình muốn kết nối tới CSDL bằng 2 file MDF, LDF mà máy đó không cần phải cài đặng hệ quản trị cơ sở dữ liệu như sql server có được không các bạn, nếu được thì có thể hướng dẫn mình kết nối luôn nha, thanks các bạn.

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

  1. System.Threading.Thread.Sleep(2000); chạy thế nào???
    Gửi bởi dl_kidder trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 06-10-2013, 12:44 PM
  2. Câu lệnh kết nối với database tạo bằng Sql 2000 viết thế nào
    Gửi bởi sinhvien_ct trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 3
    Bài viết cuối: 03-08-2011, 09:01 AM
  3. Attach file CSDL Sql server 2000 vào C# như thế nào?
    Gửi bởi baotran trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 14
    Bài viết cuối: 28-11-2010, 05:58 PM
  4. MS SQL Lỗi Thao tác với Sql Server 2000
    Gửi bởi iamonlining trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 2
    Bài viết cuối: 14-04-2010, 11:24 PM
  5. Sự khác nhau giữa SQL 2000 và SQL 2005 như thế nào?
    Gửi bởi dieucay555 trong diễn đàn Thắc mắc đại cương Database & Reporting
    Trả lời: 5
    Bài viết cuối: 27-07-2008, 08:21 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