2008-08-21 15 views
7

मैं कुछ समय के लिए लिंक से SQL का उपयोग कर रहा हूं और मुझे लगता है कि यह वास्तव में उपयोगी और उपयोग करने में आसान है। अतीत में उपयोग किए गए अन्य ओआरएम उपकरणों के साथ, डेटाबेस से भरे इकाई ऑब्जेक्ट में आमतौर पर डेटाबेस में अंतर्निहित डेटा कॉलम की लंबाई इंगित करने वाली संपत्ति होती है। यह डेटाबेस स्थितियों में सहायक है जहां आप टेक्स्टबॉक्स पर अधिकतम लम्बाई गुण सेट कर सकते हैं, उदाहरण के लिए, उपयोगकर्ता द्वारा दर्ज इनपुट की लंबाई को सीमित करने के लिए।लिंक से एसक्यूएल - अंतर्निहित कॉलम की लंबाई

मुझे अंतर्निहित डेटा कॉलम की लंबाई प्राप्त करने के लिए लिंक से SQL का उपयोग करने का कोई तरीका नहीं मिल रहा है। क्या कोई इसे करने का तरीका जानता है? कृपया मदद करें।

उत्तर

1

धन्यवाद। दरअसल इन दोनों उत्तरों का काम प्रतीत होता है। दुर्भाग्यवश, वे कोड-जनरेशन किए जाने पर उत्पन्न लिंक गुणों को देखते हैं। यद्यपि यह करने के लिए सही काम प्रतीत होता है, मेरी स्थिति में हम सॉफ्टवेयर उत्पादों को बेचते हैं और कभी-कभी ग्राहक अपने डेटा को समायोजित करने के लिए कुछ स्तंभ लंबाई का विस्तार करेंगे। इस प्रकार, इस तकनीक का उपयोग करके रिपोर्ट की गई फ़ील्ड की लंबाई हमेशा अंतर्निहित डेटा कॉलम की वास्तविक लंबाई को प्रतिबिंबित नहीं कर सकती है। आह ठीक है, लिंक से एसक्यूएल की गलती नहीं है, है ना? :)

त्वरित उत्तरों के लिए धन्यवाद!

1

यदि आपको सटीक कॉलम लंबाई जानने की आवश्यकता है तो आप सिस्टम का उपयोग कर सकते हैं। डेटा कक्षाएं स्वयं। कुछ इस तरह:

var context = new DataContextFromSomewhere(); 
var connection = context.Connection; 
var command = connection.CreateCommand("SELECT TOP 1 * FROM TableImInterestedIn"); 
var reader = command.ExecuteReader(); 
var table = reader.GetSchemaTable(); 

foreach(var column in table.Columns) 
{ 
    Console.WriteLine("Length: {0}", column.MaxLength); 

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