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ố 15 kết quả

Đề tài: Kết nối database (cơ sở dữ liệu) trong lập trình C# | Hướng dẫn

  1. #1
    Ngày gia nhập
    07 2006
    Nơi ở
    Hà Nội
    Bài viết
    138

    Post Kết nối database (cơ sở dữ liệu) trong lập trình C# | Hướng dẫn

    Bạn cần mở một kết nối đến một cơ sở dữ liệu.

    Tạo một đối tượng kết nối phù hợp với kiểu cơ sở dữ liệu mà bạn cần kết nối; tất cả các đối tượng kết nối đều hiện thực giao diện System.Data.IDbConnection. Cấu hình đối tượng kết nối bằng cách thiết lập thuộc tính ConnectionString của nó. Mở kết nối bằng cách gọi phương thức Open của đối tượng kết nối.

    Bước đầu tiên trong việc truy xuất cơ sở dữ liệu là mở một một kết nối đến cơ sở dữ liệu. Giao diện IDbConnection mô tả một kết nối cơ sở dữ liệu, và mỗi data-provider chứa một hiện thực duy nhất. Dưới đây là danh sách các hiện thực IDbConnection cho năm data-provider chuẩn:

    Visual C# Code:
    1. System.Data.Odbc.OdbcConnection
    2. System.Data.OleDb.OleDbConnection
    3. System.Data.OracleClient.OracleConnection
    4. System.Data.SqlServerCe.SqlCeConnection
    5. System.Data.SqlClient.SqlConnection

    Bạn cấu hình một đối tượng kết nối bằng một chuỗi kết nối. Chuỗi kết nối là một tập các cặp giá trị tên được phân cách bằng dấu chấm phẩy. Bạn có thể cung cấp một chuỗi kết nối làm đối số trong phương thức khởi dựng hoặc bằng cách thiết lập thuộc tính ConnectionString của đối tượng kết nối trước khi mở kết nối. Mỗi hiện thực lớp kết nối yêu cầu bạn cung cấp những thông tin khác nhau trong chuỗi kết nối. Bạn hãy tham khảo tài liệu về thuộc tính ConnectionString đối với mỗi hiện thực để biết được những giá trị mà bạn có thể chỉ định. Dưới đây là một số thiết lập:

    • Tên server cơ sở dữ liệu đích
    • Tên cơ sở dữ liệu cần mở vào lúc đầu
    • Giá trị timeout của kết nối
    • Cơ chế connection-pooling (xem mục 10.2)
    • Cơ chế xác thực dùng khi kết nối đến các cơ sở dữ liệu được bảo mật, bao gồm việc cung cấp username và password

    Một khi đã được cấu hình, gọi phương thức Open của đối tượng kết nối để mở kết nối đến cơ sở dữ liệu. Kế đó, bạn có thể sử dụng đối tượng kết nối để thực thi những câu lệnh dựa vào data-source (sẽ được thảo luận trong mục 10.3). Các thuộc tính của đối tượng kết nối cũng cho phép bạn lấy thông tin về trạng thái của một kết nối và những thiết lập được sử dụng để mở kết nối. Khi đã hoàn tất một kết nối, bạn nên gọi phương thức Close để giải phóng các tài nguyên hệ thống và kết nối cơ sở dữ liệu nằm dưới. IDbConnection được thừa kế từ System.IDisposable, nghĩa là mỗi lớp kết nối sẽ hiện thực phương thức Dispose. Phương thức này sẽ tự động gọi Close, cho nên lệnh using là một cách rất rõ ràng và hiệu quả khi sử dụng đối tượng kết nối trong mã lệnh.

    Để đạt được hiệu năng tối ưu trong việc truy cập dữ liệu thì phải mở kết nối cơ sở dữ liệu càng chậm càng tốt, và khi đã hoàn tất thì ngắt kết nối càng sớm càng tốt. Việc này bảo đảm rằng, bạn không truy xuất tới kết nối cơ sở dữ liệu trong một thời gian dài và mã lệnh có cơ hội cao nhất để giữ lấy kết nối. Điều này đặc biệt quan trọng nếu bạn đang sử dụng connection-pooling.

    Đoạn mã dưới đây trình bày cách sử dụng lớp SqlConnection để mở một kết nối đến SQL Server đang chạy trên máy cục bộ có sử dụng Integrated Windows Security (bảo mật tích hợp với Windows). Để truy xuất đến một máy từ xa, chỉ cần thay đổi data-source từ localhost thành tên của đối tượng cơ sở dữ liệu.
    Visual C# Code:
    1. // Tạo đối tượng SqlConnection rỗng.
    2. using (SqlConnection con = new SqlConnection()) {
    3.     // Cấu hình chuỗi kết nối của đối tượng SqlConnection.
    4.     con.ConnectionString =
    5.         "Data Source = localhost;"+ // Đối tượng SQL Server cục bộ
    6.         "Database = Northwind;" +   // Cơ sở dữ liệu mẫu Northwind
    7.         "Integrated Security=SSPI"; // Integrated Windows Security
    8.     // Mở kết nối cơ sở dữ liệu.
    9.     con.Open();
    10.     // Hiển thị thông tin về kết nối.
    11.     if (con.State == ConnectionState.Open) {
    12.         Console.WriteLine("SqlConnection Information:");
    13.         Console.WriteLine("  Connection State = " + con.State);
    14.         Console.WriteLine("  Connection String = " + con.ConnectionString);
    15.         Console.WriteLine("  Database Source = " + con.DataSource);
    16.         Console.WriteLine("  Database = " + con.Database);
    17.         Console.WriteLine("  Server Version = " + con.ServerVersion);
    18.         Console.WriteLine("  Workstation Id = " + con.WorkstationId);
    19.         Console.WriteLine("  Timeout = " + con.ConnectionTimeout);
    20.         Console.WriteLine("  Packet Size = " + con.PacketSize);
    21.     } else {
    22.         Console.WriteLine("SqlConnection failed to open.");
    23.         Console.WriteLine("  Connection State = " + con.State);
    24.     }
    25.     // Cuối khối using, Dispose sẽ gọi Close.
    26. }
    Đoạn mã dưới đây trình bày một chuỗi kết nối dùng để mở một kết nối đến cơ sở dữ liệu ở trên (nếu bạn đang sử dụng OLE DB Data Provider để thực hiện kết nối):
    Visual C# Code:
    1. // Tạo một đối tượng OleDbConnection rỗng.
    2. using (OleDbConnection con = new OleDbConnection())
    3. {
    4.  
    5.     // Cấu hình chuỗi kết nối của đối tượng OleDbConnection.
    6.     con.ConnectionString =
    7.         "Provider = SQLOLEDB;" +         // OLE DB Provider for SQL Server
    8.         "Data Source = localhost;" +     // Đối tượng SQL Server cục bộ
    9.         "Initial Catalog = Northwind;" + // Cơ sở dữ liệu mẫu Northwind
    10.         "Integrated Security=SSPI";      // Integrated Windows Security
    11.     // Mở kết nối cơ sở dữ liệu.
    12.     con.Open();
    13.  
    14.     // Xử lý mọi thứ với cơ sở dữ liệu ở đây
    15.  
    16.     // Đóng kết nối cơ sở dữ liệu.
    17.     con.Close();
    18. }
    Trích từ "Các giải pháp lập trình C#"
    Tất cả các câu hỏi của thành viên (không vi phạm luật lệ tham gia) gửi vào box Java, Linux nếu không thành viên nào trả lời hỗ trợ trong vòng 24h, ban quản trị sẽ trực tiếp hỗ trợ. Các bạn giới thiệu và loan tin giúp điều này

  2. #2
    Ngày gia nhập
    12 2009
    Nơi ở
    Hà Nội
    Bài viết
    535

    Hay lắm, tiếp phần sau đi (sqldataadapter, dataset, datatable....) đang học phần này thấy rất hay

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

    hay lắm mình cũng đang học cái nì nè, thanks chủ thớt nhìu.
    up tiếp đi....

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

    Mình có 1 connectionstring thế lày :

    public static string con = "Data Source=192.168.1.8\\SQLEXPRESS;database=qlsv;Integ rated Security=True;Connect Timeout=30;User Instance=False";

    Cho hỏi cái connect timeout đó có nghĩa là gì vậy

  5. #5
    Ngày gia nhập
    04 2010
    Nơi ở
    My Computer
    Bài viết
    195

    Trích dẫn Nguyên bản được gửi bởi phuc9999 Xem bài viết
    Mình có 1 connectionstring thế lày :

    public static string con = "Data Source=192.168.1.8\\SQLEXPRESS;database=qlsv;Integ rated Security=True;Connect Timeout=30;User Instance=False";

    Cho hỏi cái connect timeout đó có nghĩa là gì vậy
    Quá time đó mà vẫn k connect được thì out
    Hôm nào em ra đi anh thẫn thờ trên phố nhỏ
    Mây chiều giăng lối đi em đứng nhìn mắt bơ vơ
    Tóc xõa từ bờ vai hoen mi sầu rưng rưng lệ
    Cho tròn tuổi tình yêu lúc ban đầu xa cách nhau

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

    Mặc định Kết nối database (cơ sở dữ liệu) trong lập trình C# | Hướng dẫn

    Trích dẫn Nguyên bản được gửi bởi thach.thuc Xem bài viết
    Quá time đó mà vẫn k connect được thì out
    Vậy nó tính bằng giây hay mili giây ???

  7. #7
    Ngày gia nhập
    04 2010
    Nơi ở
    My Computer
    Bài viết
    195

    Trích dẫn Nguyên bản được gửi bởi phuc9999 Xem bài viết
    Vậy nó tính bằng giây hay mili giây ???
    Nhìn cái code ví dụ của bạn đưa ở trên đó thì theo bạn nó tính bằng gì?
    Hôm nào em ra đi anh thẫn thờ trên phố nhỏ
    Mây chiều giăng lối đi em đứng nhìn mắt bơ vơ
    Tóc xõa từ bờ vai hoen mi sầu rưng rưng lệ
    Cho tròn tuổi tình yêu lúc ban đầu xa cách nhau

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

    Trích dẫn Nguyên bản được gửi bởi thach.thuc Xem bài viết
    Nhìn cái code ví dụ của bạn đưa ở trên đó thì theo bạn nó tính bằng gì?
    Thật sự mình cũng đã thử thay = 999999 , Chạy chương trình lên nó báo ko kết nối được trong vòng chưa đầy 1 giây , thế mình mới thắc mắc

    À được rồi , phải xóa cache đi nó mới chạy đúng , tks bồ nha

  9. #9
    Ngày gia nhập
    04 2012
    Bài viết
    3

    Trích dẫn Nguyên bản được gửi bởi phuc9999 Xem bài viết
    Mình có 1 connectionstring thế lày :

    public static string con = "Data Source=192.168.1.8\\SQLEXPRESS;database=qlsv;Integ rated Security=True;Connect Timeout=30;User Instance=False";

    Cho hỏi cái connect timeout đó có nghĩa là gì vậy
    cho mình hỏi là đường dẫn này "Data Source=192.168.1.8\\SQLEXPRESS;database=qlsv;Integ rated Security=True;Connect Timeout=30;User Instance=False"; lấy đâu ra vậy?

  10. #10
    Ngày gia nhập
    05 2012
    Bài viết
    3

    XML Code:
    1. <?xml version="1.0" encoding="utf-8" ?>
    2. <configuration>
    3.     <configSections>
    4.     </configSections>
    5.     <connectionStrings>
    6.         <add name="DoAn_WinForm.Properties.Settings.QLNSConnectionString"
    7.            connectionString="Data Source=NGOCHUNG-PC\SQLEXPRESS;Initial Catalog=QLNS;Integrated Security=True"
    8.            providerName="System.Data.SqlClient" />
    9.     </connectionStrings>
    10. </configuration>

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

  1. MS SQL Lỗi Cách sử dụng replication trong sql server 2012 để đồng bộ 2 database thành 1 database?
    Gửi bởi btk1902 trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 1
    Bài viết cuối: 22-07-2013, 02:24 PM
  2. MS SQL Lỗi Không attach được database trong sql 2005, lỗi: not able to access database under current security context
    Gửi bởi hugo158 trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 4
    Bài viết cuối: 19-04-2013, 02:51 AM
  3. Cách tạo database trong Oracle Database 10g Express Edition?
    Gửi bởi trangchuvn_2000 trong diễn đàn Thắc mắc Oracle
    Trả lời: 5
    Bài viết cuối: 18-06-2012, 06:25 PM
  4. ADO.NET Restore database SQL 2005 lỗi: Exclusive access could not be obtained because the database is in use
    Gửi bởi phuongnam_bx trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 05-11-2011, 01:49 PM
  5. Xử lý database trong mạng lan sử dụng Access Database?
    Gửi bởi tesulakata trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 24-10-2010, 11:09 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