نمایش نتایج 1 تا 9 از 9

نام تاپیک: یکی بیاد طرز ساختن شمارنده را با asp.net2 به ما یاد بده بابا کمک کنید

  1. #1
    کاربر دائمی آواتار khz-web1
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    اهواز
    پست
    614

    Angry یکی بیاد طرز ساختن شمارنده را با asp.net2 به ما یاد بده بابا کمک کنید

    سلام دوستان من الان سویم تای÷یکی است که دارم میزنم ولی به جوابم نمی رسم

    هر چقدر هم سرچ می زنم جایی این آموزش گیرم نمی یاد

    می خوام آموزش کامل ساخت شمارنده با زبان VB در2 asp.net به من یاد بدید

    هم کداش رو بزارید هم بگید این کدها چیکار میکنه

    با تشکر فراوان

    09163014345

  2. #2
    دوست من
    سلام
    لطفا بجای ایجاد تاپیک مجدد مطالبتون رو توی همون تاپیک قبلی پیگیری کنید

    روش ایجاد شمارنده رو هم بنده همونجا توضیح دادم

    الان مجبور شدم تند تند باز واست بنویسم
    کد پایین کد فایل Global.asax هست

    <%@ Application Language="VB" %>

    <script runat="server">
    Public sitecounter As Integer
    Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
    sitecounter = 0
    Application.Add("counter", sitecounter)
    End Sub

    Sub Application_End(ByVal sender As Object, ByVal e As EventArgs)
    ' Code that runs on application shutdown
    End Sub

    Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
    ' Code that runs when an unhandled error occurs
    End Sub

    Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
    sitecounter = Application.Item("Counter")
    sitecounter = sitecounter + 1
    Application.Remove("Counter")
    Application.Add("counter", sitecounter)
    End Sub

    Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)
    ' Code that runs when a session ends.
    ' Note: The Session_End event is raised only when the sessionstate mode
    ' is set to InProc in the Web.config file. If session mode is set to StateServer
    ' or SQLServer, the event is not raised.
    End Sub

    </script>


    هر جای برنامه ات هم که خواستی استفاده کنی اینجوریه

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Dim k As Integer
    k = Application.Item("Counter")
    Label1.Text = Str(k)

    End Sub


    البته این کد رو از این بهتر هم میشه نوشت ، اما چون هم شما عجله ندارید و هم من Visual Studio دم دستم نیست اینجور نوشتم که مطمئن باشم کار می کنه !!
    موفق باشید

  3. #3
    کاربر دائمی آواتار khz-web1
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    اهواز
    پست
    614
    آقایه آزموده واقعا ازت ممنونم خیلی خوب بود ببخشید شما که زحمت کشیدید برای ما اینو ساختید اگه میشه کدش را توضیح بدید که چطوری کار میکنه ممنون آقا

  4. #4
    کاربر دائمی آواتار khz-web1
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    اهواز
    پست
    614

    تشکر

    آقایه آزموده ممنون از کدتون اگه میشه آموزش فارسی این کد هم بدین که چطوری کار میکنه


    نقل قول نوشته شده توسط azmoodeh مشاهده تاپیک
    دوست من
    سلام
    لطفا بجای ایجاد تاپیک مجدد مطالبتون رو توی همون تاپیک قبلی پیگیری کنید

    روش ایجاد شمارنده رو هم بنده همونجا توضیح دادم

    الان مجبور شدم تند تند باز واست بنویسم
    کد پایین کد فایل Global.asax هست

    <%@ Application Language="VB" %>

    <script runat="server">
    Public sitecounter As Integer
    Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
    sitecounter = 0
    Application.Add("counter", sitecounter)
    End Sub

    Sub Application_End(ByVal sender As Object, ByVal e As EventArgs)
    ' Code that runs on application shutdown
    End Sub

    Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
    ' Code that runs when an unhandled error occurs
    End Sub

    Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
    sitecounter = Application.Item("Counter")
    sitecounter = sitecounter + 1
    Application.Remove("Counter")
    Application.Add("counter", sitecounter)
    End Sub

    Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)
    ' Code that runs when a session ends.
    ' Note: The Session_End event is raised only when the sessionstate mode
    ' is set to InProc in the Web.config file. If session mode is set to StateServer
    ' or SQLServer, the event is not raised.
    End Sub

    </script>


    هر جای برنامه ات هم که خواستی استفاده کنی اینجوریه

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Dim k As Integer
    k = Application.Item("Counter")
    Label1.Text = Str(k)

    End Sub


    البته این کد رو از این بهتر هم میشه نوشت ، اما چون هم شما عجله ندارید و هم من Visual Studio دم دستم نیست اینجور نوشتم که مطمئن باشم کار می کنه !!
    موفق باشید

  5. #5
    کاربر دائمی آواتار __H2__
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    یک جایی بین Framework و نارمک!
    پست
    1,059
    سلام
    این کد بشدت مشکل دارد!
    مسئله چند ریسمانی در آن لحاظ نشده و مثلاً اگر 100 نفر همزمان وارد سایت شوند این کد فقط چند تک شماره افزایش پیدا میکند. (میتوانید با یک شبیه ساز ساده امتحان کنید!!!)
    باید ریسمان را با قفل کرد یا از SyncLock استفاده کرد یا کل Appilication را قفل کرد و یا از تابع System.Threading.Interlocked. Increment استفاده کنید.

  6. #6
    سلام

    قطعه کد اول رو دقیقا در فایل global.asax ذخیره کن .( برای ساختن این فایل از منوی add new item گزینه Global Application Class رو انتخاب کنید )
    حالا این فایل رو باز کرده و محتویاتش رو پاک کنید و قطعه کد اول رو توش قرار بدید.

    برای به دست آوردن تعداد شمارنده هم قطعه کد دوم رو هر جایی که می خواید قرار بدید
    Dim k As Integer
    k = Application.Item("Counter")

    مثلا اگر می خواید هنگام کلیک کردن روی یک Button این مقدار جایی نشون داده بشه یا مثلا هنگام بار گذاری صفحه توی یک Label چاپ بشه و ....
    مقدار k از نوع Integer تعداد شمارنده رو نشون می ده ، برای نشون دادنش توی یک Lebel هم باید با تابع Str() تبدیل به string بشه.
    برای تست نرم افزار هم این کد رو توی یک صفحه قرار بدید و این صفحه رو توی چند تا صفحه IE باز کنید

    موفق باشید

  7. #7
    نقل قول نوشته شده توسط __H2__ مشاهده تاپیک
    سلام
    این کد بشدت مشکل دارد!
    مسئله چند ریسمانی در آن لحاظ نشده و مثلاً اگر 100 نفر همزمان وارد سایت شوند این کد فقط چند تک شماره افزایش پیدا میکند. (میتوانید با یک شبیه ساز ساده امتحان کنید!!!)
    باید ریسمان را با قفل کرد یا از SyncLock استفاده کرد یا کل Appilication را قفل کرد و یا از تابع System.Threading.Interlocked. Increment استفاده کنید.
    دوست عزیز خودم هم می دونم که این کد به شدت آماتور است و اول هم گفتم که این کد ساده ترین روش است که تازه بهینه هم نیست. سعی کردم آسون ترین شیوه رو به دوستمون ارایه بدم . چون احساس کردم از این سخت تر ممکنه باعث سردرگمیش بشه.امیدوارم شما بتونید بهشون کمک کنید که این کده مشکل دار بنده رو مفهومی متوجه بشند و بعد قطعه کدی دارای مباحث چند ریسمانی و Performance Consideration و ... بهشون ارایه بدید

  8. #8
    کاربر دائمی آواتار __H2__
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    یک جایی بین Framework و نارمک!
    پست
    1,059
    سلام
    خوب در کل همانطور که کاربر azmoodeh هم گفتند این روشها کامل نیست و در اصل باید اطلاعات در بانک ذخیره شود تا از بین هم نرود ولی من اگر بخواهم یک شمارنده ساده قرار دهم کد زیر را ترجیح میدهم.
    ذخیره با نام Counter.vb در پوشه Appp_Code

    Option Strict On
    Option Explicit On

    Public Class Counter
    Private Shared m_Counter As Integer = 0

    Public Shared Sub Increment()
    System.Threading.Interlocked.Increment(m_Counter)
    End Sub

    Public Shared Function GetCounter() As Integer
    Return m_Counter
    End Function

    End Class

    و کد زیر در Global.asax در ریشه سایت

    <%@ Application Language="VB" %>

    <script runat="server">

    Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
    Counter.Increment()
    End Sub

    </script>


    برای گرفتن عدد شماره جاری هم میتوان از Counter.GetCounter استفاده کرد.

    به نظر من هم ساده تر و هم سریعتر و هم قابل اطمینان تر است (گرچه کامل نیست!)

    جمیعاً موفق و پیروز باشید.

  9. #9
    کاربر دائمی آواتار khz-web1
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    اهواز
    پست
    614
    آقایون از شما ممنونم

تاپیک های مشابه

  1. اشکال در asp.net2 با C#‎
    نوشته شده توسط roya_dibaj در بخش ASP.NET Web Forms
    پاسخ: 12
    آخرین پست: سه شنبه 22 آبان 1386, 09:43 صبح
  2. اشکال در لود صفحه طراحی شده با asp.net2
    نوشته شده توسط m_nejad در بخش ASP.NET Web Forms
    پاسخ: 8
    آخرین پست: سه شنبه 18 مهر 1385, 12:12 عصر
  3. برنامه .net2 تحت شبکه
    نوشته شده توسط probit در بخش VB.NET
    پاسخ: 4
    آخرین پست: جمعه 07 مهر 1385, 13:30 عصر
  4. .net2 و ایجاد دیتا بیس جدید
    نوشته شده توسط negar84 در بخش C#‎‎
    پاسخ: 9
    آخرین پست: شنبه 01 مهر 1385, 13:52 عصر
  5. یک راه برای رمزکرن کوکی ها با ASP.NET2
    نوشته شده توسط meandyouwith2003 در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: سه شنبه 15 فروردین 1385, 21:40 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •