2009-04-19 18 views
5

मैं नाम, आकार और डेटा प्रकार, और अशक्त/नहीं अशक्त, अहस्ताक्षरित, ऑटो increament की तरह अतिरिक्त जानकारी, मूलभूत मूल्यों, अगर डेटा सहितसी # का उपयोग कर एक mysql तालिका के बारे में सभी विवरण कैसे प्राप्त करें?

1) पूर्ण स्तंभ परिभाषाओं का उपयोग ग # एक mysql तालिका के लिए इन जानकारी प्राप्त करना चाहते हैं प्रकार enum है, स्वीकार किए जाते हैं मानों

2) सभी बाधाओं - प्राथमिक/विदेशी/चेक/अद्वितीय

3) सभी अनुक्रमित

मैं प्राप्त कर सकते हैं संबंधित स्तंभ बुनियादी जानकारी क्वेरी के खिलाफ का उपयोग कर "TABLE_NAME का वर्णन" डेटाबेस।

लेकिन इन सभी जानकारी को कैसे प्राप्त करें?

संबंध है, अंजन

उत्तर

6

सिर्फ INFORMATION_SCHEMA के खिलाफ प्रश्नों फेंक ...

उदाहरण के लिए, स्तंभ परिभाषाओं पाने के लिए:

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 

अतिरिक्त जानकारी प्राप्त करने के the information schema tables पर एक नजर डालें।

उम्मीद है कि यह मदद करता है।

2

आप SqlDataReader.GetSchemaTable() विधि का उपयोग कर सकते हैं और यह आपके 1) विकल्प के लिए केवल का जवाब है, लेकिन यह आपकी स्कीमा, के लिए एक ही कनेक्शन का उपयोग करता है, तो आपके कनेक्शन स्ट्रिंग है डिफ़ॉल्ट डेटाबेस (स्कीमा) विकल्प सेट किया जा सकता है। (आपको INFORMATION_SCHEMA स्कीमा से अलग कनेक्शन बनाने की आवश्यकता नहीं है)।

इस विधि के बारे में अधिक जानकारी here और उदाहरण के लिए here का उपयोग कैसे किया जा सकता है।

अपनी स्कीमा या डेटाबेस के बारे में सब कुछ पाने के लिए SqlClientMetaDataCollectionNames कक्षा का उपयोग करें।

वर्ग के बारे में अधिक जानकारी here और उदाहरण पाया जा सकता है यह here

का उपयोग कैसे करें
संबंधित मुद्दे