منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : عدد مرات الضغط
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
(07-02-17, 09:05 PM)مساعدة كتب : [ -> ]هنا سوف نعتمد على التاريخ وليس id تم إضافة عمود خاص بتاريخ اليوم في قاعدة البيانات في المرفقات

هذا التعديل يعمل على اساس التاريخ، اي لكل يوم عداد خاص به
كود :
Imports System.Data.SQLite

Public Class Form1


   ' الاتصال
   Private con As New SQLiteConnection("Data Source = " & My.Application.Info.DirectoryPath & "\click.s3db;")

   ' متغير العداد
   Private clickCount As Integer = 0




   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
       ' قراءة البيانات
       readData()
   End Sub




   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

       ' زيادة العداد
       clickCount += 1

       ' تحديث السجل رقم 1 بقيمة العداد الحالية
       Using cmd As New SQLiteCommand("UPDATE [click]  SET [clickCount] = @clickCount  WHERE [today] = @today ", con)
           cmd.Parameters.AddWithValue("@clickCount", clickCount)
           cmd.Parameters.AddWithValue("@today", Today.Date.ToString)


           If con.State <> ConnectionState.Open Then con.Open()
           cmd.ExecuteNonQuery()
           con.Close()

       End Using

       ' قراءة البيانات
       readData()

   End Sub




   ' قراءة البيانات
   Private Sub readData()

       ' التأكد من وجود سجل بتاريخ اليوم
       If Not isThereToday() Then
           ' إضافة سجل جديد
           Insert()
       End If

       '------------------------------

       ' قراءة البيانات في السجل تاريخ اليوم
       Using cmd As New SQLiteCommand("SELECT [clickCount]  FROM [click]  WHERE [today] = @today ", con)
           cmd.Parameters.AddWithValue("@today", Today.Date.ToString)

           If con.State <> ConnectionState.Open Then con.Open()
           clickCount = cmd.ExecuteScalar
           con.Close()

       End Using

       ' إظهار القيمة
       CountOut.Text = clickCount

   End Sub



   ' التأكد من وجود سجل بتاريخ اليوم
   Private Function isThereToday() As Boolean
       Using cmd As New SQLiteCommand("SELECT COUNT( [today] )  FROM [click]  WHERE [today] = @today ", con)
           cmd.Parameters.AddWithValue("@today", Today.Date.ToString)

           If con.State <> ConnectionState.Open Then con.Open()
           Return If(cmd.ExecuteScalar > 0, True, False)
           con.Close()

       End Using
   End Function



   ' إضافة سجل جديد
   Private Sub Insert()
       ' إضافة سجل جديد
       Using cmd As New SQLiteCommand("INSERT INTO [click] ( [today] , [clickCount] ) VALUES ( @today , 0 ) ", con)
           cmd.Parameters.AddWithValue("@today", Today.Date.ToString)
           If con.State <> ConnectionState.Open Then con.Open()
           cmd.ExecuteNonQuery()
           con.Close()

       End Using
   End Sub


End Class

تم معرفة تاريخ اليوم بالكود Today.Date.ToString لانه سوف يتجاهل الوقت، وهذا مهم إذا كان التركيز على التاريخ فقط


من جديد اقولك شكرا بار الله فيك 

مقدر معروفك وتعبك معاي شكرا
الصفحات : 1 2