<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>ஏஎஸ்பி.நெட்</title>
        <link>http://blog.krupashankar.com/pullivalai/category/9.aspx</link>
        <description>ஏஎஸ்பி.நெட்</description>
        <language>ta</language>
        <copyright>சு. க்ருபா ஷங்கர்</copyright>
        <generator>Subtext Version 2.1.2.2</generator>
        <item>
            <title>உயிர்மை இதழும், தமிழுக்கான ரெகுலர் எக்ஸ்ப்ரஷனும்</title>
            <link>http://blog.krupashankar.com/pullivalai/archive/2008/08/21/41.aspx</link>
            <description>மனுஷ்யபுத்திரன் நடத்தும் உயிர்மை இதழை இணையத்திலும் &lt;a href="http://www.uyirmmai.com/"&gt;படிக்க&lt;/a&gt; முடியும் என்பதை இன்றுதான் அறிந்து கொண்டேன். இதைப் படிப்பதற்கு அத்தளத்தில் உறுப்பினராகப் பதிந்துகொள்ள வேண்டும். இதற்கு கட்டணம் ஏதும் கிடையாது. இத்தளம் .நெட் தொழில்நுட்பத்திலேயே உருவாக்கப்பட்டுள்ளது.&lt;br /&gt;
&lt;br /&gt;
இத்தளத்தில் ஒரு சிறு குறை, விண்ணப்பப்படிவத்தில் நம் பெயரைத் தமிழில் கொடுக்க முடியாது. ஆங்கிலத்தில்தான் கொடுக்க முடியும். டாட்நெட்டின் உள்ளமைந்த வேலிடேஷன் கண்ட்ரோல்களைக் கொண்டே பயனர் கொடுக்கும் விவரங்களைச் சரிபார்க்குமாறு அமைத்திருக்கிறார்கள்.  அவ்வகையில், பெயரைச் சரிபார்க்க, ரெகுலர் எக்ஸ்ப்ரஷன் கண்ட்ரோலைப் பயன்படுத்தி இருக்கிறார்கள். எனினும் இந்த கண்ட்ரோலின் வேலிடேஷன் எக்ஸ்ப்ரஷனாக &lt;span style="COLOR: rgb(255,0,0)"&gt;^[a-z A-Z]+$&lt;/span&gt; என்று கொடுத்துள்ளார்கள். இதனால், ஆங்கில எழுத்துக்கள் மற்றும் வெற்றிடத்தைத் தவிர வேறு எந்த ஒரு எழுத்தையும் பெயரை உள்வாங்கிக்கொள்ளும் டெக்ஸ்ட்பாக்ஸ் அனுமதிக்காது.&lt;br /&gt;
&lt;br /&gt;
எனவே, இந்த ரெகுலர் எக்ஸ்ப்ரஷனில் இத்தள நிர்வாகிகள் ஒரு சிறு மாறுதல் செய்தால் இப்பிரச்சனை சரியாகிவிடும். &lt;span style="COLOR: rgb(255,0,0)"&gt;^[a-z A-Z]+$ &lt;/span&gt;என்று இருக்கும் எக்ஸ்ப்ரஷனை, &lt;span style="COLOR: rgb(255,0,0)"&gt;^[a-z A-Z ஃ-ௗ]+$&lt;/span&gt; என்று மாற்றிவிட்டால் போதும், தமிழ் மற்றும் ஆங்கிலம் இரண்டையுமே உள்ளிடலாம். யூனிகோட் சார்ட்டின் படி, தமிழ் எழுத்துக்கள் 2946 இடத்திலிருந்து 3058 வரையிலும் இருக்கின்றன. இதில் 3047லிருந்து 3058 வரையான இடங்கள் தமிழ் எண்களுக்காக ஒதுக்கப்பட்டுள்ளன. எனவே, என்று பெயர்களைத் தமிழில் சரிபார்க்க &lt;span style="COLOR: rgb(255,0,0)"&gt;ஃ-௲&lt;/span&gt; என்று ரெகுலர் எக்ஸ்ப்ரஷன் தவராகும். அதனால், &lt;span style="COLOR: rgb(255,0,0)"&gt;ஃ-ௗ&lt;/span&gt; என்று கொடுப்பதே சரியானது. ம்ம், ஆமாம். யூனிகோடின் கணக்குப்படி, தமிழின் முதல் எழுத்து &lt;span style="FONT-WEIGHT: bold; COLOR: rgb(51,153,102)"&gt;ஃ&lt;/span&gt; தான் &lt;img alt="" src="/Providers/BlogEntryEditor/FCKeditor/editor/images/smiley/msn/wink_smile.gif" /&gt;&lt;br /&gt;
&lt;br /&gt;
இதேபோல், ஒருவரது வயது, அனுபவம் போன்றவற்றை தமிழ் எண்களின் படி சரிபார்க்க வேண்டுமென்றால், ரெகுலர் எக்ஸ்ப்ரஷனில் &lt;span style="COLOR: rgb(255,0,0)"&gt;^[௧-௲]+$ &lt;/span&gt;என்று கொடுக்கவேண்டும். கவனிக்கவும், &lt;span style="COLOR: rgb(255,0,0)"&gt;க&lt;/span&gt;, &lt;span style="COLOR: rgb(255,0,0)"&gt;௧&lt;/span&gt; இரண்டும் பார்ப்பதற்கு ஒரே மாதிரியாக இருந்தாலும் இரண்டும் வெவ்வேறானவை. முந்தயது தமிழ் எழுத்து. பிந்தையது தமிழில் 1 என்ற எண்ணைக் குறிக்கும் எழுத்து.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="FONT-WEIGHT: bold"&gt;பி.கு&lt;/span&gt;.: நான் இங்கே கொடுத்திருக்கும் ரெகுலர் எக்ஸ்ப்ரஷனில் யூனிகோட் 3.2 அட்டவணையை மட்டுமே எடுத்துக்கொண்டுள்ளேன். 4.1, 5.0 எல்லாம் பற்றி தெரியவில்லை. எனவே, 3046ல் உள்ள பூஜ்ஜியத்தையும் இதில் சேர்க்கவில்லை. தமிழில் எண்களை எழுதும்போது ‘பூஜ்ஜியம்' தேவையே இல்லை என்பது வேறு விஷயம். இன்னொரு விஷயம், தமிழில் பின்னங்களை நம் முன்னோர்கள் எத்தனையோ நுணுக்கமாகப் பயன்படுத்தி, அதற்கென தனித்தனிப்  &lt;a href="http://tamilelibrary.org/teli/numeral.html"&gt;பெயர், எழுத்துக் குறியீடு&lt;/a&gt; எல்லாம் வைத்திருந்தாலும் அவையெல்லாம் யூனிகோடில் இணையும் அளவுக்குப் புண்ணியம் செய்திருக்கவில்லை. எனவே, பின்ன எழுத்துக்களை இந்தோ-அரபி எழுத்து முறையிலேயே பயன்படுத்திக்கொள்ளவேண்டியதுதான்.&lt;img src="http://blog.krupashankar.com/pullivalai/aggbug/41.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>சு. க்ருபா ஷங்கர்</dc:creator>
            <guid>http://blog.krupashankar.com/pullivalai/archive/2008/08/21/41.aspx</guid>
            <pubDate>Wed, 20 Aug 2008 20:15:06 GMT</pubDate>
            <wfw:comment>http://blog.krupashankar.com/pullivalai/comments/41.aspx</wfw:comment>
            <comments>http://blog.krupashankar.com/pullivalai/archive/2008/08/21/41.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blog.krupashankar.com/pullivalai/comments/commentRss/41.aspx</wfw:commentRss>
        </item>
        <item>
            <title>எஸ்க்யூஎல் சர்வர் timeout ஆகிறதா?</title>
            <link>http://blog.krupashankar.com/pullivalai/archive/2008/06/13/38.aspx</link>
            <description>&lt;font face="Arial"&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;font face="Arial"&gt;&lt;strong&gt;செந்தில்&lt;/strong&gt;: &lt;/font&gt;அண்ணே, எனக்கு ஒரு சந்தேகம்ணே...&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;font face="Arial"&gt;&lt;strong&gt;கௌண்டமணி&lt;/strong&gt;: &lt;/font&gt;டெக்னிக்கலா எதாவது சந்தேகம்னா, கேளு. வேற ஏதாவது கோக்கு மாக்கா கேட்ட, அப்பறம் தலையயும் ஓம்மூஞ்சி மாதிரி மாத்திடுவேண்டா client feedback தலையா...&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;font face="Arial"&gt;&lt;strong&gt;செந்தில்&lt;/strong&gt;: &lt;/font&gt;அதில்லண்ணே... ASP.NETல இந்த timeout error எரர், timeout எரர்ன்னு ஒன்னு வருதே, அத எப்படின்னே சரி பண்றது?&lt;br /&gt;
&lt;br /&gt;
&lt;font face="Arial"&gt;&lt;font face="Arial"&gt;&lt;strong&gt;கௌண்டமணி&lt;/strong&gt;: &lt;/font&gt;அடேய் க்ளைன்ட் வாயா... இப்படி பொத்தாம்பொதுவா user மாதிரி எரர் ரிப்போர்ட் பண்ணினா எப்படிடா புரியும்? என்ன எரர்ன்னு முழுசா சொல்லுடா...&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;strong&gt;செந்தில்&lt;/strong&gt;: &lt;/font&gt;&lt;font face="Arial" color="#ff0000"&gt;&lt;strong&gt;Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding.&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;/font&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;font face="Arial"&gt;&lt;strong&gt;டி. ராஜேந்தர்&lt;/strong&gt;: &lt;/font&gt;யம்மா தங்கச்சி, எர்ரர் உருவாச்சி. வீட்டுக்கு நேரமாச்சி, வயிறும் தடுத்தாச்சி.&lt;br /&gt;
&lt;br /&gt;
&lt;/font&gt;&lt;font face="Arial"&gt;ஒனக்கு நெனவிருக்காம்மா... சின்ன வயசுல எஸ்க்யூஎல் சர்வரோட கனெக்ட் பண்ணி வெளயாடும்போது,  டைம் ஔட் எர்ரர் வருது டைம் ஔட் எர்ரர் வருதுன்னு நீ சொல்லுவ, டைம் ஔட் value அதிகமாக்குன்னு நான் சொல்லுவேன். கொஞ்ச நால் நான் வேலை கிடைக்காம திண்டாடினப்ப, நீ எனக்கு டைம் ஔட்டுன்னு சொல்லி கிண்டல் பண்ணுவ.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;font face="Arial"&gt;கனக்ஷன் ஸ்ட்ரிங்குல &lt;/font&gt;Connect Timeout&lt;font face="Arial"&gt;டா&lt;br /&gt;
&lt;font face="Arial"&gt;கமான்ட்டு ஆப்ஜக்டுல commandtimeout&lt;font face="Arial"&gt;டா&lt;br /&gt;
&lt;font face="Arial"&gt;&lt;font face="Arial"&gt;ரெண்டுத்துக்கும் வித்யாசம் பெயருலயே இருக்குடா&lt;br /&gt;
&lt;font face="Arial"&gt;டண்டனக்கா ஏ டணக்கணக்கா &lt;font face="Arial"&gt;டண்டனக்கா ஏ டணக்கணக்கா&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;font face="Arial"&gt;&lt;strong&gt;விஜயகாந்த்&lt;/strong&gt;: &lt;/font&gt;டேய், நிறுத்துடா... டெவலப்மென்ட்டுல எனக்குப் புடிக்காத ஒரே வார்த்தை....  எர்ரர்.  SQLCommand objectல எத்தன ப்ராப்பர்ட்டி இருக்குன்னு தெரியுமா ஒனக்கு? 1 ஸ்ட்ரிங்க் ப்ராப்பர்ட்டி இருக்கு, 23 மெத்தட்ஸ் இருக்கு, 1 பூலியன் ப்ராப்பர்ட்டி இருக்கு, 1 இன்ட் ப்ராப்பர்ட்டி இருக்கு.  கனக்ஷன் ஸ்ட்ரிங்குல எத்தனை ஆட்ரிப்யூட் இருக்குன்னு தெரியுமா ஒனக்...&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;font face="Arial"&gt;&lt;strong&gt;வடிவேலு&lt;/strong&gt;: &lt;/font&gt;ஆஹா... ஆரம்பிச்சுட்டாய்ங்க்கய்யா ஆரம்பிச்சுட்டாய்ங்ஞ... &lt;font face="Arial"&gt;நெறய டேட்டாவ ப்ராசஸ் பண்ணும் போது இப்படி ஒரு எரர் வந்தா என்ன பண்ணனும்னுதானடா இவன் கேட்டான்... அதுக்குப் போய் ஆளாளுக்கு இப்படி கொல்றீங்களேடா...&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;strong&gt;பார்த்திபன்&lt;/strong&gt;:  &lt;font face="Arial"&gt;ஆளை ஆளுக்கு கொல்லும் போது எதுக்கு நீ டேட்டாவை ப்ராசஸ் பண்ற? டேய், தீவிரவாதியா நீ?&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;strong&gt;வடிவேலு&lt;/strong&gt;: ஆஹா, அவனா நீயீ? இதோ பாருப்பா... ஒனக்கு பதில் தெரிஞ்சா சொல்லு. இல்ல ஆள விடு, நான் பாட்டுக்கு போய்க்கிட்டே இருக்கேன்.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;strong&gt;பார்த்திபன்&lt;/strong&gt;: பதில் சொல்லாட்டி ஆள விடணுமா இல்ல பதில் தெரியாட்டி ஆள விடணுமா?&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;strong&gt;வடிவேலு&lt;/strong&gt;: எனக்கு டைம் ஆச்சு. நான் ஆபீஸ் போய் தூங்கணும். நான் வரேம்பா.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;strong&gt;பார்த்திபன்&lt;/strong&gt;: எஸ்க்யூஎல் சர்வரோட தொடர்பை ஏற்படுத்தறதுக்கு Connect Timeout  ஆட்ரிப்யூட்டை கனெக்ஷன் ஸ்ட்ரிங்க்ல குடுக்கணும். &lt;font face="Arial"&gt;எவ்வளவு நேரம் வரை தொடர்பு ஏற்படுத்த காத்திருந்து அப்பறம் எரர் மெசேஜை அனுப்பலாம்னு சொல்றதுக்குதான் இந்த Connect Timeout. &lt;/font&gt;அதுக்கும் இந்த timeout expiredக்கும் சம்பந்தம் இல்லை.  இதுக்கு டேட்டா அடாப்டரோட SelectCommandலயோ அல்லது SqlCommand ஆப்ஜக்ட்லயோ இருக்கற CommandTimeout ப்ராப்பார்ட்டீலதான்...&lt;br /&gt;
&lt;/font&gt;&lt;font face="Arial"&gt;&lt;font face="Arial"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;font face="Arial"&gt;&lt;strong&gt;வடிவேலு&lt;/strong&gt;: டைம் செட் பண்ணணுமா?&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;strong&gt;பார்த்திபன்&lt;/strong&gt;: என்ன, ஆபீஸ்ல போய் தூங்கறதுக்குதான் டைம் செட் பண்ணப்போறியா?&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;strong&gt;வடிவேலு&lt;/strong&gt;: சேச்சே, அதெல்லாம் இல்லப்பா...&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;strong&gt;பார்த்திபன்&lt;/strong&gt;: ஓ, அப்போ ஒனக்கு ஆபீசே இல்லயா? வேல இல்லாம சும்மா வெட்டியாதான் சுத்தறயா?&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;strong&gt;வடிவேலு&lt;/strong&gt;: இருப்பா இருப்பா... அது ஒனக்கு எப்படி தெரியும்?&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;&lt;strong&gt;பார்த்திபன்&lt;/strong&gt;: இதுதான், போட்டு... வாங்கறது.&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blog.krupashankar.com/pullivalai/aggbug/38.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>சு. க்ருபா ஷங்கர்</dc:creator>
            <guid>http://blog.krupashankar.com/pullivalai/archive/2008/06/13/38.aspx</guid>
            <pubDate>Thu, 12 Jun 2008 20:57:55 GMT</pubDate>
            <wfw:comment>http://blog.krupashankar.com/pullivalai/comments/38.aspx</wfw:comment>
            <comments>http://blog.krupashankar.com/pullivalai/archive/2008/06/13/38.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blog.krupashankar.com/pullivalai/comments/commentRss/38.aspx</wfw:commentRss>
        </item>
        <item>
            <title>எக்சல் கோப்பைப் டாட்நெட்டில் பயன்படுத்தினால் தகவல் இழப்பு ஏற்படுகிறதா? </title>
            <link>http://blog.krupashankar.com/pullivalai/archive/2008/04/03/37.aspx</link>
            <description>&lt;p&gt;&lt;font size="+0"&gt;எக்சல் கோப்புகளை எக்சல் ஆப்ஜக்ட் பயன்படுத்தாமலேயே வெறும் OleDbConnectionனை மட்டும் வைத்துக்கொண்டே டாட்நெட் &lt;font size="+0"&gt;தொழில்நுட்பம்&lt;/font&gt; பயன்படுத்த முடியும், கீழ்க்கண்டவாறு:&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="+0"&gt;&lt;font color="#3366ff"&gt;OleDbConnection&lt;/font&gt; xlConn = &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#3366ff"&gt;OleDbConnection&lt;/font&gt;(@&lt;font color="#ff0000"&gt;"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\filename.xls;Extended Properties='Excel 8.0;'"&lt;/font&gt;);&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="+0"&gt;இதிலுள்ள ஒவ்வொரு சீட்டையும் ஒரு டேபிலாகப் படிக்கலாம்.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="+0"&gt;பிறகு டேபிளில் உள்ள வரிசைகளைப் படிக்க "select * from [sheet1$]" என்று அடாப்டரிலோ அல்லது கமாண்ட் ஆப்ஜக்டிலோ வினவளைக் கொடுக்கவேண்டியதுதான். இதில் ஒரு சிறிய பிரச்சனை என்னவென்றால் &lt;font face="Arial"&gt;டேட்டாடைப்பை&lt;/font&gt; OleDbConnection புரிந்துகொள்ளும் விதம்தான். உதாரணமாக, எண்கள் மட்டும் இருக்கவேண்டிய ஒரு காலத்தில் (column) ஒரு எழுத்துச்சரத் தகவல் இருந்தது என்றால் அந்த தகவலை எடுத்துக்கொள்ளாமல் வெறும் null என்று அந்த இடத்தில் எடுத்துக்கொள்ளும். இதைத் தவிர்க்க, தகவல்தொடர்ப்புச் சரத்தில், IMEX=1 என்று சேர்த்துத் தரவேண்டும், கீழ்க்கண்டவாறு:&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="+0"&gt;&lt;font color="#3366ff"&gt;OleDbConnection&lt;/font&gt; xlConn = &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#3366ff"&gt;OleDbConnection&lt;/font&gt;(@&lt;font color="#ff0000"&gt;"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\filename.xls;Extended Properties='Excel 8.0;IMEX=1'"&lt;/font&gt;);&lt;br /&gt;
&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blog.krupashankar.com/pullivalai/aggbug/37.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>சு. க்ருபா ஷங்கர்</dc:creator>
            <guid>http://blog.krupashankar.com/pullivalai/archive/2008/04/03/37.aspx</guid>
            <pubDate>Thu, 03 Apr 2008 07:26:38 GMT</pubDate>
            <wfw:comment>http://blog.krupashankar.com/pullivalai/comments/37.aspx</wfw:comment>
            <comments>http://blog.krupashankar.com/pullivalai/archive/2008/04/03/37.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://blog.krupashankar.com/pullivalai/comments/commentRss/37.aspx</wfw:commentRss>
        </item>
        <item>
            <title>எண்கள் அடிப்படையிலான columnகளின் கூட்டுத்தொகையை க்ரிட்வியூவில் காண்பிக்க...</title>
            <link>http://blog.krupashankar.com/pullivalai/archive/2008/03/27/36.aspx</link>
            <description>&lt;p&gt;க்ரிட்வ்யூ கன்ட்ரோலை ஒரு டேட்டா டேபிள்/டேட்டாசெட்டுடன் பைன்ட் பண்ணிய பிறகு, எண்கள் இருக்கும் columnகளின் (numeric datatype columns) அடியில் மட்டும் எண்களின் கூட்டுத்தொகையைக் காண்பிக்க வேன்டியிருக்கலாம். பைன்ட் பண்ணிய டேபிளைப் பற்றிய விவரங்கள் நமக்கு முன்னமேயே தெரிந்திருந்தால் datatable.Compute("sum(columname)") மெத்தடைப் பயன்படுத்தி சுலபமாக இதைச் செய்துவிடலாம். ஆனால் இதற்கு எவையெவையெல்லாம் எண்களின் அடிப்படையில் அமைந்த fields என்று நிரல் எழுதும்போதே தெரிந்திருக்கவேண்டும். அப்படி இயலாத நேரங்களில், எந்தெந்த fields எண் வகையைச் சார்ந்தது என்று இயங்குநேரத்தில் கண்டுபிடித்து பிறகு Compute மெத்தடைப் பயன்படுத்தி sumஐ காண்பிக்கவேண்டும்.&lt;/p&gt;
&lt;p&gt;ஒரு க்ரிட்வ்யூவையும், டேட்டாடேபிளையும் ஆர்க்யுமென்டாகக் கொடுத்தால், தானாகவே இந்த வேலையைச் செய்யும் ஒரு சின்ன ஃபங்க்ஷன் இதோ:&lt;br /&gt;
&lt;/p&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;    &lt;span style="COLOR: blue"&gt;private&lt;/span&gt; &lt;span style="COLOR: blue"&gt;void&lt;/span&gt; GenerateFooterTotal(&lt;span style="COLOR: teal"&gt;GridView&lt;/span&gt; gvResult, &lt;span style="COLOR: teal"&gt;DataTable&lt;/span&gt; dtbl)&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;    {&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span style="COLOR: blue"&gt;        #region&lt;/span&gt; Total for number columns&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;        &lt;span style="COLOR: green"&gt;//We cant compute the total by specifying the field name since we dont&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;        &lt;span style="COLOR: green"&gt;//know what table will be displayed and what columns need to be included for the sum.&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;        &lt;span style="COLOR: green"&gt;//So, just get the sum of all the decimal and int type columns&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="COLOR: green"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;        &lt;span style="COLOR: teal"&gt;Hashtable&lt;/span&gt; hsh = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;span style="COLOR: teal"&gt;Hashtable&lt;/span&gt;(); &lt;span style="COLOR: green"&gt;//This will hold the columns and position of the columns that are of numeric type&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="COLOR: green"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;        &lt;span style="COLOR: green"&gt;//Loop through each column to find out the numeric column.&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;        &lt;span style="COLOR: green"&gt;//If numeric column is found, then include it for computing the sum&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;        &lt;span style="COLOR: blue"&gt;for&lt;/span&gt; (&lt;span style="COLOR: blue"&gt;int&lt;/span&gt; intColPosition = 0; intColPosition &amp;lt; dtbl.Columns.Count; intColPosition++)&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;        {&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;            &lt;span style="COLOR: blue"&gt;if&lt;/span&gt; (dtbl.Columns[intColPosition].DataType == &lt;span style="COLOR: blue"&gt;typeof&lt;/span&gt;(&lt;span style="COLOR: blue"&gt;decimal&lt;/span&gt;) || dtbl.Columns[intColPosition].DataType == &lt;span style="COLOR: blue"&gt;typeof&lt;/span&gt;(&lt;span style="COLOR: blue"&gt;int&lt;/span&gt;))&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;            {&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;                hsh.Add(dtbl.Columns[intColPosition], intColPosition);&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;            }&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;        }&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt; &lt;span&gt;       &lt;span style="COLOR: green"&gt;//Now loop through the hashtable holding the numeric type columns and compute the sum to display in the footer&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;        &lt;span style="COLOR: blue"&gt;foreach&lt;/span&gt; (&lt;span style="COLOR: blue"&gt;object&lt;/span&gt; obj &lt;span style="COLOR: blue"&gt;in&lt;/span&gt; hsh.Keys)&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;        {&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;            &lt;span style="COLOR: green"&gt;//display the result (computed on the right side as assignment) in the footer = the sum of the particular numeric column name&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;            gvResult.FooterRow.Cells[&lt;span style="COLOR: teal"&gt;Convert&lt;/span&gt;.ToInt32(hsh[obj].ToString())].Text = &lt;span style="COLOR: teal"&gt;String&lt;/span&gt;.Format(&lt;span style="COLOR: maroon"&gt;"{0:0.00}"&lt;/span&gt;, dtbl.Compute(&lt;span style="COLOR: maroon"&gt;"sum("&lt;/span&gt; + ((&lt;span style="COLOR: teal"&gt;DataColumn&lt;/span&gt;)obj).ColumnName + &lt;span style="COLOR: maroon"&gt;")"&lt;/span&gt;, &lt;span style="COLOR: maroon"&gt;""&lt;/span&gt;)).ToString();&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;            gvResult.FooterRow.Cells[&lt;span style="COLOR: teal"&gt;Convert&lt;/span&gt;.ToInt32(hsh[obj].ToString())].Attributes[&lt;span style="COLOR: maroon"&gt;"align"&lt;/span&gt;] = &lt;span style="COLOR: maroon"&gt;"right"&lt;/span&gt;;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;        }&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;span style="COLOR: blue"&gt;&lt;font size="2"&gt;        #endregion&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;    }&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;    &lt;span style="COLOR: blue"&gt;private&lt;/span&gt; &lt;span style="COLOR: blue"&gt;void&lt;/span&gt; FormatGridNumbers(&lt;span style="COLOR: teal"&gt;GridView&lt;/span&gt; gvResult, &lt;span style="COLOR: teal"&gt;DataTable&lt;/span&gt; dtbl)&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;    {&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;        System.&lt;span style="COLOR: teal"&gt;Double&lt;/span&gt; dblValue = 0;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;        &lt;span style="COLOR: blue"&gt;foreach&lt;/span&gt; (&lt;span style="COLOR: teal"&gt;GridViewRow&lt;/span&gt; grow &lt;span style="COLOR: blue"&gt;in&lt;/span&gt; gvResult.Rows)&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;        {&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;            &lt;span style="COLOR: blue"&gt;for&lt;/span&gt; (&lt;span style="COLOR: blue"&gt;int&lt;/span&gt; intCellPosition = 0; intCellPosition &amp;lt; grow.Cells.Count; intCellPosition++)&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;            {&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;                &lt;span style="COLOR: blue"&gt;if&lt;/span&gt;(&lt;span style="COLOR: blue"&gt;double&lt;/span&gt;.TryParse(grow.Cells[intCellPosition].Text, &lt;span style="COLOR: blue"&gt;out&lt;/span&gt; dblValue))&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;                {&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;                    grow.Cells[intCellPosition].Text = &lt;span style="COLOR: teal"&gt;String&lt;/span&gt;.Format(&lt;span style="COLOR: maroon"&gt;"{0:0.00;(0);0}"&lt;/span&gt;, dblValue);&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;                }&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;            }&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font size="2"&gt;&lt;span&gt;        }&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;p&gt;&lt;span style="FONT-SIZE: 10pt"&gt;    }&lt;/span&gt; &lt;/p&gt;&lt;img src="http://blog.krupashankar.com/pullivalai/aggbug/36.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>சு. க்ருபா ஷங்கர்</dc:creator>
            <guid>http://blog.krupashankar.com/pullivalai/archive/2008/03/27/36.aspx</guid>
            <pubDate>Thu, 27 Mar 2008 07:11:44 GMT</pubDate>
            <wfw:comment>http://blog.krupashankar.com/pullivalai/comments/36.aspx</wfw:comment>
            <comments>http://blog.krupashankar.com/pullivalai/archive/2008/03/27/36.aspx#feedback</comments>
            <wfw:commentRss>http://blog.krupashankar.com/pullivalai/comments/commentRss/36.aspx</wfw:commentRss>
        </item>
        <item>
            <title>டெக்ஸ்ட் ஏரியாவின் அதிகபட்ச அளவை வரையறுக்க...</title>
            <link>http://blog.krupashankar.com/pullivalai/archive/2008/01/29/34.aspx</link>
            <description>சாதாரண டெக்ஸ்ட்பாக்சில் இத்தனை இத்தனை எழுத்துக்களுக்குமேல் உள்ளீடு செய்யக்கூடாது என்பதை MaxLength பண்பைக் கொண்டு சுலபமாக வரையறுத்து விடலாம். ஆனால் டெக்ஸ்ட் ஏரியாவில் இது சாத்தியமில்லை.&lt;br /&gt;
&lt;br /&gt;
எனவேதான் asp:TextBox கண்ட்ரோலில் TextMode=MultiLine என்று கொடுத்துவிட்டு, MaxLength ப்ராப்பர்ட்டியில் எவ்வளவு அளவு கொடுத்தாலும் ப்ரௌசரில் பார்க்கும் பொழுது அது எடுபடுவதில்லை. எனினும் சில நேரங்களில் டெக்ஸ்ட் ஏரியாவினுள் தரப்படும் தகவல்களையும் கூட ஒரு குறிப்பிட்ட அளவுக்கு மேல் ஏற்றுக்கொள்ள முடியாதவாறு வரையறுப்பது தேவையாகிறது.&lt;br /&gt;
&lt;br /&gt;
இதற்கு ASP.NET என்று இல்லாமல் இதர தொழில்நுட்பங்களிலும் பின்பற்றப்படும் ஒரு முறை, படிவத்தை (ஃபார்ம்) சப்மிட் செய்தவுடன் onsubmit ஈவெண்ட்டில் குறிப்பிட்ட டெக்ஸ்ட் ஏரியாவின் அளவைப் பரிசோதித்து, ஃபார்ம் சப்மிட் ஆவதைத் தடுப்பதுதான். இப்படி தடுத்தவுடன் பயனருக்கு ஒரு அலர்ட் பாக்ஸ் வழியாக தகவலின் அளவைக் குறைக்கச்சொல்லி அறிவிக்கலாம்.&lt;br /&gt;
&lt;br /&gt;
ஆனால் நிறைய டெக்ஸ்ட் ஏரியா இருக்கும் ஒரு இணையப்படிவத்தில் இந்த வழி சற்று கடினமானது. இதற்கான தீர்வு, ஏஎஸ்பி.நெட்டில் உள்ள வேலிடேஷன் கண்ட்ரோலில் இருக்கிறது. மேம்போக்காகப் பார்த்தால், LengthValidator என்றெல்லாம் எதுவும் டூல்பாக்சில் காணப்படாது. ஆனால் இதற்கு ரெகுலர் எக்ஸ்ப்ரஷன் வேலிடேட்டர் (RegularExpressionValidator) கண்ட்ரோலைப் பயன்படுத்தலாம். வேலிடேஷன் எக்ஸ்ப்ரஷன் (ValidationExpression) பண்பில், கீழ்க்கண்டவாறு கொடுக்கவேண்டும்:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="COLOR: rgb(0,0,255)"&gt;(.|\r|\n){1,500}&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
இதில் 1 என்பது குறைந்தபட்ச தகவல் அளவையும், 500 என்பது அதிகபட்ச தகவல் அளவையும் குறிக்கும். இந்த டெக்ஸ்ட் பாக்சின் character length 200தான் இருக்கவேண்டும் என்றால், இப்படி மாற்றிக்கொள்ளலாம்:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="COLOR: rgb(0,0,255)"&gt;(.|\r|\n){1,200}&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
இப்பொழுது முழு உதாரணம் கீழே:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="COLOR: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: rgb(153,51,0)"&gt;asp:TextBox &lt;/span&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;ID&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;="txtTextbox"&lt;/span&gt; &lt;span style="COLOR: rgb(255,0,0)"&gt;runat&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;="server" &lt;/span&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;Rows&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;="4"&lt;/span&gt; &lt;span style="COLOR: rgb(255,0,0)"&gt;TextMode&lt;/span&gt;=&lt;span style="COLOR: rgb(0,0,255)"&gt;"MultiLine"&lt;/span&gt; &lt;span style="COLOR: rgb(255,0,0)"&gt;Width&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;="150px"&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: rgb(153,51,0)"&gt;asp:TextBox&lt;/span&gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="COLOR: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: rgb(153,51,0)"&gt;asp:RegularExpressionValidator&lt;/span&gt; &lt;span style="COLOR: rgb(255,0,0)"&gt;ID&lt;span style="COLOR: rgb(0,0,255)"&gt;="&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;regTextbox"&lt;/span&gt; &lt;span style="COLOR: rgb(255,0,0)"&gt;runat&lt;/span&gt;=&lt;span style="COLOR: rgb(0,0,255)"&gt;"server" &lt;/span&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;ControlToValidate&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;="txtTextbox"&lt;/span&gt; &lt;span style="COLOR: rgb(255,0,0)"&gt;Display&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;="Dynamic"&lt;/span&gt; &lt;span style="COLOR: rgb(255,0,0)"&gt;ErrorMessage&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;="Length should not exceed 200 characters"&lt;/span&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt; SetFocusOnError&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;="True"&lt;/span&gt; &lt;span style="COLOR: rgb(255,0,0)"&gt;ValidationExpression&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;="(.|\r|\n){0,200}"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR: rgb(153,51,0)"&gt;asp:RegularExpressionValidator&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;img src="http://blog.krupashankar.com/pullivalai/aggbug/34.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>சு. க்ருபா ஷங்கர்</dc:creator>
            <guid>http://blog.krupashankar.com/pullivalai/archive/2008/01/29/34.aspx</guid>
            <pubDate>Tue, 29 Jan 2008 03:29:18 GMT</pubDate>
            <wfw:comment>http://blog.krupashankar.com/pullivalai/comments/34.aspx</wfw:comment>
            <comments>http://blog.krupashankar.com/pullivalai/archive/2008/01/29/34.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://blog.krupashankar.com/pullivalai/comments/commentRss/34.aspx</wfw:commentRss>
        </item>
    </channel>
</rss>