PDA

View Full Version : بهترین روش برای ساخت یادآور؟؟



mojtaba-saleh
سه شنبه 14 خرداد 1387, 19:22 عصر
سلام
دوستان من یک سفارش برای نوشتن یک برنامه یاد آور و یا Scheduler گرفتم.
آیا دوستان کسی راهی برای نوشتنش دارن؟
مثلا یک تایمر بذاریم که مثلا 1 ثانیه یک بار دیتابس رو چک کنه که این زمان یادآور داره یا نه ؟؟
این کار روی برنامه فشار وارد نمی کنه ؟
راه بهتری کسی سراغ نداره؟

touraj
سه شنبه 14 خرداد 1387, 20:54 عصر
فکر کنم بتونی از Backgroundworker استفاده کنی. در ضمن، کامپوننتهای آماده هم هست. مثل اونی که جانوس تولید کرده.

mojtaba-saleh
سه شنبه 14 خرداد 1387, 21:28 عصر
سلام
کامپوننت های جانوس رو دادم برام دانلود کنن.
شما با اون کامپوننت کار کردید؟
این امکان رو داره که از دیتابیس اطلاعات رو بخونه ؟ و اعلام کنه؟

mojtaba-saleh
چهارشنبه 15 خرداد 1387, 21:00 عصر
سلام من طبق این کد از backgroundworker استفاده کردم ولی وقتی بیش از یک بار روی کلید کلیک میکنم تعداد نتایج تکراری و زیاد می شوند.
اشکال کد چیه؟


Imports System.Data.SqlClient
Public Class Form2
Private worker As New System.ComponentModel.BackgroundWorker()
Dim objcon As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Events.mdf;Integrated Security=True;User Instance=True")
Dim Command As New SqlCommand
Dim Reader As SqlDataReader
Dim Start_Time As String
Dim i As Integer = 0
Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
worker.WorkerReportsProgress = True
AddHandler worker.DoWork, AddressOf worker_DoWork
AddHandler worker.ProgressChanged, AddressOf worker_ProgressChanged
ListBox1.Items.Clear()
worker.RunWorkerAsync()
End Sub
Private Sub worker_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs)
Start_Time = ""
Command.Connection = objcon
Command.CommandText = "Select * From Scheduler Where Start_Date='140387'"
objcon.Open()
Reader = Command.ExecuteReader
Reader.Read()
Start_Time = Reader("Start_Time")
worker.ReportProgress(i)
objcon.Close()
i = i + 1
End Sub
Private Sub worker_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs)
ListBox1.Items.Add(Start_Time)
End Sub
End Class

mojtaba-saleh
چهارشنبه 15 خرداد 1387, 21:23 عصر
بگذارید یکم واضحتر بگم
من توی جدول Scheduler دوتا رکورد دارم که شرط 'Start_Date='140387 رو داره.
مرتبه اول مشکلی نداره دوتا رکورد رو نشون میده اما دفعه بعد میشه 6 تا که دوبا هرکدوم تکرار میشه.
بار بعد میشه 13 تا همین جوری پیش میره تا مثلا اگه 10-20 بار اجرا بشه تعداد 500-600 تا رکورد تکراری که همون دو تا باشه رو خروجی میده

combo_ci
پنج شنبه 16 خرداد 1387, 10:13 صبح
اينم يه sample از codeproject

Hossein Bazyan
پنج شنبه 16 خرداد 1387, 11:31 صبح
بگذارید یکم واضحتر بگم
من توی جدول Scheduler دوتا رکورد دارم که شرط 'Start_Date='140387 رو داره.
مرتبه اول مشکلی نداره دوتا رکورد رو نشون میده اما دفعه بعد میشه 6 تا که دوبا هرکدوم تکرار میشه.
بار بعد میشه 13 تا همین جوری پیش میره تا مثلا اگه 10-20 بار اجرا بشه تعداد 500-600 تا رکورد تکراری که همون دو تا باشه رو خروجی میده

سلام
این مشکل شما به دیتابیس ربط داره . منهم این مشکل رو دارم البته برای کارهای دیگه . شما هر بار که دیتاست یا دیتا آداپتور رو پر میکنید ، مقدار قبلیش خالی نمیشه در نتیجه هر بار به اندازه مقدار قبلی به آن اضافه میشه . من نمیدانم چه جوری باید خالیش کرد و منهم بد جوری گیرش هستم
اینهم لینک تاپیکی که من ایجاد کردم
http://barnamenevis.org/forum/showthread.php?t=108627

اگه به جواب رسیدی ما رو بی خبر نذار . مرسی

mojtaba-saleh
پنج شنبه 16 خرداد 1387, 13:54 عصر
سلام
این مشکل شما به دیتابیس ربط داره . منهم این مشکل رو دارم البته برای کارهای دیگه . شما هر بار که دیتاست یا دیتا آداپتور رو پر میکنید ، مقدار قبلیش خالی نمیشه در نتیجه هر بار به اندازه مقدار قبلی به آن اضافه میشه . من نمیدانم چه جوری باید خالیش کرد و منهم بد جوری گیرش هستم
اینهم لینک تاپیکی که من ایجاد کردم
http://barnamenevis.org/forum/showthread.php?t=108627 (http://barnamenevis.org/forum/showthread.php?t=108627)

اگه به جواب رسیدی ما رو بی خبر نذار . مرسیسلام
دوست عزیز این کد شما به صورت معمولی مشکل داره , اما من وقتی توی backgroundworker میذارم این مشکل رو پیدا میکنه.
در حالات دیگه درست کار میکنه