2009-04-19 33 views
5

Tôi muốn lấy thông tin này cho bảng mysql bằng cách sử dụng C#làm thế nào để có được tất cả các chi tiết về một bảng mysql bằng cách sử dụng C#?

1) Định nghĩa cột hoàn chỉnh bao gồm tên, kích thước và kiểu dữ liệu và thông tin bổ sung như null/not null, unsigned, auto increament, default values, if data loại là enum, các giá trị được chấp nhận

2) Tất cả những hạn chế - tiểu học/Ngoại/Kiểm tra/Unique

3) Tất cả các chỉ số

tôi có thể lấy cột liên quan thông tin cơ bản sử dụng "mô tả tên_bảng" truy vấn đối với các cơ sở dữ liệu.

nhưng cách tìm nạp tất cả các thông tin này?

regards, Anjan

Trả lời

6

chỉ ném truy vấn đối với INFORMATION_SCHEMA ...

Ví dụ, để có được định nghĩa cột:

SELECT TABLE_NAME 
     , COLUMN_NAME 
     , DATA_TYPE 
     , CHARACTER_MAXIMUM_LENGTH 
     , CHARACTER_OCTET_LENGTH 
     , NUMERIC_PRECISION 
     , NUMERIC_SCALE AS SCALE 
     , COLUMN_DEFAULT 
     , IS_NULLABLE 
FROM INFORMATION_SCHEMA.COLUMNS 

Hãy xem the information schema tables để có được thông tin bổ sung.

Hy vọng điều đó sẽ hữu ích.

2

Bạn có thể sử dụng phương pháp SqlDataReader.GetSchemaTable() và đây là chỉ trả lời cho) tùy chọn 1 của bạn, nhưng điều này có thể được thực hiện bằng cùng một kết nối đến giản đồ của bạn, nếu chuỗi kết nối của bạn có cơ sở dữ liệu mặc định (schema) tùy chọn thiết lập. (Bạn không cần phải tạo kết nối riêng biệt với lược đồ INFORMATION_SCHEMA).

Thông tin thêm về phương pháp này có thể được tìm thấy here và ví dụ cách sử dụng nó here.

Để nhận mọi thứ về lược đồ hoặc cơ sở dữ liệu của bạn, hãy sử dụng lớp SqlClientMetaDataCollectionNames.

Thông tin thêm về lớp học có thể được tìm thấy here và ví dụ cách sử dụng nó here

Các vấn đề liên quan