2009-10-02 6 views
7

का उपयोग कर वेबसाइट में आगंतुकों की संख्या की संख्या मैं अपनी साइट पर आगंतुकों की संख्या का ट्रैक रखना चाहता हूं।एएसपी.Net और सी #

मैं Global.asax वर्ग में निम्न कोड की कोशिश की,

<script runat="server"> 

    public static int count = 0; 
    void Application_Start(object sender, EventArgs e) 
    { 
    Application["myCount"] = count; 
    } 

    void Session_Start(object sender, EventArgs e) 
    { 
    count = Convert.ToInt32(Application["myCount"]); 
    Application["myCount"] = count + 1; 
    } 

</script> 

मैं aspx पेज में मूल्य को पुन: प्राप्त कर रहा हूँ इस प्रकार है:

protected void Page_Load(object sender, EventArgs e) 
{ 
    int a; 
    a = Convert.ToInt32((Application["myCount"])); 
    Label4.Text = Convert.ToString(a); 
    if (a < 10) 
    Label4.Text = "000" + Label4.Text ; 
    else if(a<100) 
    Label4.Text = "00" + Label4.Text; 
    else if(a<1000) 
    Label4.Text = "0" + Label4.Text; 
} 

ऊपर कोडिंग ठीक काम करता है। यह आगंतुकों को ठीक से उत्पन्न करता है लेकिन समस्या यह है कि जब मैं अपने सिस्टम को पुनरारंभ करता हूं, तो गिनती चर फिर से 0 से शुरू होता है जो तर्कसंगत रूप से गलत है।

मैं चाहता हूं कि गिनती का मूल्य अंतिम गणना मूल्य से 1 तक बढ़ाया जाए।

तो क्या कोई मुझे बता सकता है कि इस कार्य को कैसे पूरा किया जाए?

कृपया मेरी मदद करें! अग्रिम धन्यवाद!

उत्तर

7

यदि आप चाहते हैं कि एप्लिकेशन पुनरारंभ करने पर गिनती जारी रखने के लिए गिनती हो, तो आपको किसी भी डेटाबेस या फ़ाइल में कहीं भी मूल्य स्टोर करना होगा, और एप्लिकेशन शुरू होने पर उस मान को लोड करना होगा।

int a; 
a = Convert.ToInt32(Application["myCount"]); 
Label4.Text = a.ToString("0000"); 

अधिक जानकारी के लिए Custom Numeric Format Strings देखें:

इसके अलावा, आप सुनिश्चित करने के लिए आपके प्रदर्शित गिनती हमेशा कम से कम 4 अक्षर है निम्न का उपयोग कर सकते हैं।

निजी तौर पर टिप्पणी करने के लिए प्रतिक्रिया करने के लिए


संपादित करें, मैं, फाइल सिस्टम के लिए लेखन पर एक डेटाबेस का उपयोग की सलाह देते हैं तो कम से कम निम्नलिखित कारणों के लिए: पर निर्भर करता है

  1. अपने मेजबान, डेटाबेस स्थापित करना आपके फ़ाइल सिस्टम में लेखन पहुंच सक्षम करने से बहुत आसान हो सकता है।
  2. डेटाबेस का उपयोग करने से आप string की बजाय इसे int के रूप में स्टोर करने की अनुमति देंगे।
  3. भारी यातायात के तहत, आपको कई धागे के साथ समस्याएं लिखने के लिए एक टेक्स्ट फ़ाइल खोलने की कोशिश करनी होगी - जो फ़ाइल पर लॉक का कारण बनती है, और एक बोतल गर्दन का कारण बनती है जिसकी आपको आवश्यकता नहीं होती है।

विभिन्न संसाधनों आपको बताएगा कि अपनी कोड से एक डेटाबेस से कनेक्ट करने के लिए होगा, एक अच्छी जगह शुरू करने के लिए इस How To: Connect to SQL Server होगा, और कैसे क्वेरी करने के लिए पर "What are the alternatives" के अंतर्गत तरीकों जानकारी के लिए जांच कर रहे हैं और डेटाबेस को अद्यतन ।

1

आमतौर पर आप उस कार्य (वेबलॉग विश्लेषक) के लिए अन्य टूल्स का उपयोग करते हैं।

जैसे ही आप मेमोरी (एप्लिकेशन ["myCount"] में अपना मान संग्रहीत करते हैं) यह मान किसी सर्वर को पुनरारंभ नहीं करेगा।तो तुम

  • सादा textfile एक

    • डेटाबेस में संग्रहीत करने के लिए है
    • जो कुछ
  • +0

    ठीक है आपके उत्तर के लिए धन्यवाद। यदि आप दिमाग में नहीं हैं तो क्या आप मुझे बता सकते हैं कि यह कैसे करें? और क्या इसे किसी डेटाबेस या टेक्स्ट फ़ाइल में संग्रहीत करना फायदेमंद है? – Sheetal

    6

    सी # कोड के नीचे प्रदर्शित है:

    protected void Page_Load(object sender, EventArgs e) 
        { 
         this.countMe(); 
        enter code here 
         DataSet tmpDs = new DataSet(); 
         tmpDs.ReadXml(Server.MapPath("~/counter.xml")); 
    
         lblCounter.Text = tmpDs.Tables[0].Rows[0]["hits"].ToString(); 
        } 
    
        private void countMe() 
        { 
         DataSet tmpDs = new DataSet(); 
         tmpDs.ReadXml(Server.MapPath("~/counter.xml")); 
    
         int hits = Int32.Parse(tmpDs.Tables[0].Rows[0]["hits"].ToString()); 
    
         hits += 1; 
    
         tmpDs.Tables[0].Rows[0]["hits"] = hits.ToString(); 
    
         tmpDs.WriteXml(Server.MapPath("~/counter.xml")); 
    
        } 
    

    तो फिर तुम एक xml की आवश्यकता है कोड को काम करने के लिए रूट निर्देशिका में फ़ाइल भी करें। एक्सएमएल फ़ाइल इस तरह दिखेगा:

    <?xml version="1.0" encoding="utf-8" ?> 
    <counter> 
        <count> 
        <hits>0</hits> 
        </count> 
    </counter> 
    
    +0

    जब एकल व्यक्ति पेज टेंडेम रीफ्रेश करता है, काउंटर बढ़ने की संख्या !! – AminM

    2

    के पहले उत्तर यू विश्व स्तर पर गिनती चर घोषित किया था, यही कारण है कि हर नए सत्र की संख्या में 0.for बेहतर परिणाम के साथ, वेतन वृद्धि आवेदन [] session_start विधि के अंदर चर शुरू होता है।

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