2010-11-24 15 views
6

से डेटाटेबल में कॉलम के डेटा टाइप को बदलना मैं अपने डेटाबेस से डाटाटेबल में डेटा लोड कर रहा हूं, और कॉलम में से एक दिनांक फ़ील्ड है।डेटटाइम से स्ट्रिंग

using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString)) 
{ 
    SqlCommand cmd = conn.CreateCommand(); 
    cmd.CommandText = "MySP"; 
    cmd.CommandType = CommandType.StoredProcedure; 

    conn.Open(); 
    using (SqlDataReader rdr = cmd.ExecuteReader()) 
    { 
     dt.Load(rdr); 
    } 
} 

मैं उस स्तंभ स्वरूपित करने के लिए इतना है कि एक पूर्ण तिथि युक्त करने के बजाय, यह "MM/DD/YYYY" इस प्रारूप में होना होगा चाहते हैं।

मैं तालिका में प्रत्येक पंक्ति के माध्यम से पाशन और उस स्तंभ के लिए सेल को बदलने की कोशिश की है, लेकिन मैं एक त्रुटि कह रही है कि स्ट्रिंग मान्य दिनांक समय वस्तु नहीं है मिलता है।

मैं एक स्ट्रिंग के लिए स्तंभ DateType बदलते कोशिश की, लेकिन मैं एक त्रुटि कह के बाद तालिका भर जाता है मैं DateType नहीं बदल सकते हैं मिलता है।

मैं यह कैसे कर सकता हूं? ऐसा लगता है कि यह एक साधारण बात है, लेकिन मुझे इसके साथ बहुत परेशानी हो रही है।

+0

जहां और आप कैसे इस डेटा तालिका का उपयोग कर रहे हैं? मैं कहेंगे आप तारीख स्वरूपण किया जाना चाहिए जब आप अपने यूआई परत (डेटा स्रोत के रूप उदाहरण के लिए) लेकिन उससे पहले नहीं पर इसका इस्तेमाल। –

+0

मैं इसे ग्रिड व्यू में बाध्य कर रहा हूं। कॉलम गतिशील हैं, इसलिए मैं इसे डिज़ाइन व्यू में प्रारूपित नहीं कर सकता। स्तंभ के सूचकांक के रूप में अच्छी तरह से अलग हो सकता है, तो यह या तो RowDataBound स्थिति में इसे बदलने के रूप में के रूप में आसान नहीं है। – Steven

+0

यदि ऐसा है, तो आप कॉलम को एक स्ट्रिंग टाइप करना चाहते हैं और मान डालने से पहले इसे प्रारूपित करना चाहते हैं। –

उत्तर

10

आप के चारों ओर एक काम एक नया स्तंभ वहाँ स्वरूपित तारीख बना सकते हैं और संग्रहीत कर सकती है के रूप में:

dt.Columns.Add("DateStr"); 

foreach (DataRow dr in dt.Rows) 
{ 
    dr["DateStr"] = string.Format("{0:MM/dd/yyyy}", dr["OriginalDate"]); 
} 
2

आप एक DateTime struct मूल्य फ़ॉर्मेट नहीं कर सकते हैं। इस तरह से मत सोचो।

समय में एक पल, आम तौर पर एक तारीख और दिन के समय के रूप में व्यक्त: यह उद्देश्य एक मूल्य का प्रतिनिधित्व धारण करने के लिए है।

आप उस उदाहरण के मान को स्ट्रिंग में कनवर्ट करते समय केवल प्रारूप निर्दिष्ट कर सकते हैं। अपनी डेटाटेबल स्कीमा को छोड़ दें। आप कहीं भी हों यह प्रारूप में तैयार करना, formats आप ToString(string) विधि के साथ उपयोग कर सकते हैं में से कुछ को देखो।

4

एक स्ट्रिंग CONVERT का उपयोग करने के क्षेत्र कास्ट करने के लिए अपने संग्रहीत प्रक्रिया बदलें ...

SELECT CONVERT(varchar, DateFieldName, 101) AS DateFieldNameFormatted 

101 dd/mm/yyyy (अन्य कोड/प्रारूपों के लिए लिंक देखें)

के लिए प्रारूप कोड है
संबंधित मुद्दे