2012-06-22 16 views
13

मैं ADO.Net में GetSchema विधि का उपयोग कर तालिका के स्तंभों की सूची प्राप्त करना चाहते हैं के द्वारा एक तालिका के कॉलम में जाओ, मेरे कोड है:GetSchema() विधि

var dtCols = con.GetSchema("Columns", new[] { "DBName", "TableName" }); 

और मुझे एक खाली DataTable मिलता है, क्या है मुसीबत?

+1

वार किया था, लेकिन 'वर dtCols = con.GetSchema (" कॉलम "कोशिश, नई [] {" DBNAME ", अशक्त, "टेबलनाम"}); ' – Matthew

+0

धन्यवाद मैथ्यू जो काम करता है, कृपया उत्तर के रूप में अपना समाधान लिखें। –

उत्तर

22

आपको "स्वामी" प्रतिबंध के लिए पैरामीटर निर्दिष्ट करना होगा।

dtCols = con.GetSchema("Columns", new[] {con.DataSource, null, "TableName"});

यह मानते हुए कि "TableName" तालिका है कि आप के लिए स्कीमा चाहते हैं उसका नाम है:

var dtCols = con.GetSchema("Columns", new[] { "DBName", null, "TableName" }); 
0

इन उत्तरों दोनों के साथ एक सा सामान्यीकृत किया जा सकता है।

+0

ऐसा लगता है जैसे आप स्पष्टीकरण मांग रहे हैं? उत्तर प्रश्न के उत्तर देने के लिए आरक्षित हैं, टिप्पणी करने या सहायता मांगने के लिए नहीं। – rayryeng

+0

यदि आपका कनेक्शन पहले से ही डेटाबेस से जुड़ा हुआ है, तो आप con.DataSource के बजाय डेटाबेस नाम के लिए बस एक शून्य निर्दिष्ट कर सकते हैं। – Scott

0

मैं एक ऐसी ही समस्या है, काम किया निम्नलिखित .. अंधेरे में

using(SqlCommand command = new SqlCommand(sqlText, con)) { 
    var sqlReader = command.ExecuteReader(); 
    var a = sqlReader.GetColumnSchema();       
}