2009-11-12 9 views
5

मैं इस कोडहोशेचेमा ("कॉलम") + वापसी डेटा टाइप;

using (SqlConnection conn = new SqlConnection(ConnectionString)) 
        { 
         conn.Open(); 
         DataTable Databases = conn.GetSchema("Databases"); 
         DataTable Tables = conn.GetSchema("Tables"); 
         DataTable Columns = conn.GetSchema("Columns"); 
         conn.close(); 
        } 

मैं कॉलम "DATA_TYPE" में स्ट्रिंग मान पढ़कर datattype वापस जाने के लिए की जरूरत है

foreach (DataRow row in Columns.Rows) 
       if (row["TABLE_NAME"].ToString() == tableName) 
       { 
        if (fName == row["COLUMN_NAME"].ToString()) 
        { 
         //return Datatype 
         var x = row["DATA_TYPE"]; 
        } 
       } 

//// अगर (पंक्ति [ "DATA_TYPE"] == "पूर्णांक है ") मैं डेटाटाइप (Int) द्वारा var x को सेट कर सकता हूं या पंक्ति [" DATA_TYPE "] में पाया गया नाम से डेटाटाइप कैसे प्राप्त करें ?? !!

+0

कृपया मुझे बताएं कि क्या करना है ?! – Asma

+0

यदि 'पंक्ति [" DATA_TYPE "] ==" int "' आप चाहते हैं कि .NET प्रकार का x int हो? अगर '" वर्कर (एन) '" -> 'स्ट्रिंग' आदि ... सही है? – manji

+0

हैलो, धन्यवाद ........... हाँ जो मुझे चाहिए ...... कृपया मुझे बताएं कि कैसे? !! – Asma

उत्तर

4

एक समाधान प्रकार शुद्ध करने के लिए एक शब्दकोश मानचित्रण एसक्यूएल प्रकार बनाने के लिए किया जाएगा:

Dictionary<string, Type> sqlToNetTypes; 

और सभी संभव प्रकार आप कॉलम "DATA_TYPE" और उनके नेट बराबर में पा सकते हैं से पॉप्युलेट:

Type GetNETType(string sqlType) 
{ 
    if(sqlToNetTypes.ContainsKey(sqlType)) 
    { 
     return sqlToNetTypes[sqlType]; 
    }else 
    { 
     return typeof(object); //generic type 
    } 
} 

और इस तरह इसका इस्तेमाल:

sqlToNetTypes.Add("int", typeof(int)); 
sqlToNetTypes.Add("varchar", typeof(sting)); 
sqlToNetTypes.Add("datetime", typeof(DateTime)); 
sqlToNetTypes.Add("bit", typeof(bool)); 
sqlToNetTypes.Add("numeric", typeof(float));//or double or decimal as you like... 
... 
एक सहायक विधि में तो

foreach (DataRow row in Columns.Rows) 
    if (row["TABLE_NAME"].ToString() == tableName) 
    { 
     if (fName == row["COLUMN_NAME"].ToString()) 
     { 
      //return Datatype 
      var x = GetNETType(row["DATA_TYPE"]); 
     } 
    } 
+0

आपके उत्तर – Asma

+0

के लिए धन्यवाद, यह मदद करता है। – manji

संबंधित मुद्दे