منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[VB.NET] عدد مرات الضغط - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [VB.NET] عدد مرات الضغط (/showthread.php?tid=19046)

الصفحات: 1 2


عدد مرات الضغط - dubai.eig - 31-01-17

السلام عليكم ورحمة الله

عندي كود شغال تمام وهو لحساب عدد الضغطات

كود :
count += 1


يقوم بتخزينه في قاعدة البيانات

المشكلة التي تواجهني 

بعد اغلاق البرنامج والرجوع من جديد 

يصفر الارقام

مثلا اذا ان العدد قبل اغلاق البرنامج 9 
بعد الاغلاق يرجع صفر

لان يبدى من جديد من
كود :
+= 1


حاولت اعمل حل
وهو
كود :
       If count.Text = "0" Then
           count += 1
       Else
           count = 1
       End If

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

بس كيف يضبط بارك الله فيكم


وشكرا


RE: عدد مرات الضغط - مساعدة - 31-01-17

السلام عليكم


ضع مشروعك.


RE: عدد مرات الضغط - dubai.eig - 31-01-17

(31-01-17, 07:31 PM)مساعدة كتب : السلام عليكم


ضع مشروعك.



شكرا على الرد 

هذا الكود 

كود :
 Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
       Button2.Enabled = False


       If lblDisplay.Text = "0" Then
           count += 1
       Else
           count = 1
       End If

       Dim con As New SQLiteConnection("Data Source= " & My.Application.Info.DirectoryPath & "\info.s3db")
       Dim cmd As New SQLiteCommand("UPDATE info SET status=@status WHERE id=@id ", con)
       con.Open()
       cmd.Parameters.AddWithValue("@status", count)
       cmd.Parameters.AddWithValue("@id", getid)
       cmd.ExecuteNonQuery()
       cmd.Dispose()
       con.Close()



       Dim SQLconnect As New SQLite.SQLiteConnection()
       Dim SQLcommand As SQLiteCommand
       SQLconnect.ConnectionString = "Data Source= " & My.Application.Info.DirectoryPath & "\info2.s3db"
       SQLconnect.Open()
       SQLcommand = SQLconnect.CreateCommand
       SQLcommand.CommandText = "INSERT INTO info2 (CALLop,qso_dated) Values (@CALLop,@qso_date)"
       SQLcommand.Parameters.AddWithValue("@CALLop", calls.Text)
       SQLcommand.Parameters.AddWithValue("@qso_date", qso_date.Text)
       SQLcommand.ExecuteNonQuery()
       SQLcommand.Dispose()
       SQLconnect.Close()

       RefreshData()
       ClearTextbox()

   End Sub



RE: عدد مرات الضغط - اليوم مبتدئة وغداً محترفة - 04-02-17

الليبل نفسه يوم تشغل البرنامج من وين ياخذ العدد؟؟


RE: عدد مرات الضغط - عبد الرحمن - 04-02-17

اذا كانت قاعده البيانات مضافة للمشروع
اذهب لقاعدة البيانات في المشروع واضغط عليها عشان تحددها بعدين في الخصايص غير copy to directory output الى copy if new

لان الحفظ يتم على النسخة الي في المجلد debug
لكن الفجوال اذا عدلت فيه اي شي يرجع يضع نسخة ملف البيانات اللي في المشروع
من جديد في المجلد debug وبكذا يتلغي البيانات الي انت حفظها في التشغي السابق


RE: عدد مرات الضغط - dubai.eig - 06-02-17

شكرا على التفاعل الجميل

هذا المشروع 

WindowsApplicat55ion5

وهذا البرنامج فتح ومعاينة قاعدة البيانات
http://sqliteadmin.orbmu2k.de/

علما باني ااستخدم sqlite


وشكرا من جديد


RE: عدد مرات الضغط - مساعدة - 06-02-17

لا يوجد جدول في قاعدة البيانات

تفضل تعديل الكود وفي المرفقات قاعدة البيانات وتم فيها اضافة الجدول
كود :
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 [id] = @id ", con)
            cmd.Parameters.AddWithValue("@clickCount", clickCount)
            cmd.Parameters.AddWithValue("@id", 1)


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

        End Using

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

    End Sub




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

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

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

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

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

        End Using

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

    End Sub



    ' التأكد من وجود سجل برقم محدد
    Private Function isThereId(id As Integer) As Boolean
        Using cmd As New SQLiteCommand("SELECT COUNT( [id] )  FROM [click]  WHERE [id] = @id ", con)
            cmd.Parameters.AddWithValue("@id", 1)

            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] ( [clickCount] ) VALUES ( 0 ) ", con)
            cmd.Parameters.AddWithValue("@id", 1)
            If con.State <> ConnectionState.Open Then con.Open()
            cmd.ExecuteNonQuery()
            con.Close()

        End Using
    End Sub


End Class



RE: عدد مرات الضغط - dubai.eig - 07-02-17

(06-02-17, 08:48 PM)مساعدة كتب : لا يوجد جدول في قاعدة البيانات

تفضل تعديل الكود وفي المرفقات قاعدة البيانات وتم فيها اضافة الجدول
كود :
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 [id] = @id ", con)
           cmd.Parameters.AddWithValue("@clickCount", clickCount)
           cmd.Parameters.AddWithValue("@id", 1)


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

       End Using

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

   End Sub




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

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

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

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

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

       End Using

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

   End Sub



   ' التأكد من وجود سجل برقم محدد
   Private Function isThereId(id As Integer) As Boolean
       Using cmd As New SQLiteCommand("SELECT COUNT( [id] )  FROM [click]  WHERE [id] = @id ", con)
           cmd.Parameters.AddWithValue("@id", 1)

           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] ( [clickCount] ) VALUES ( 0 ) ", con)
           cmd.Parameters.AddWithValue("@id", 1)
           If con.State <> ConnectionState.Open Then con.Open()
           cmd.ExecuteNonQuery()
           con.Close()

       End Using
   End Sub


End Class



ما نستغنى عنك وعن خدماتك بارك الله فيك فعلا ضبط معاي والحمدالله

شكرا لك ولجميع من شارك في الموضوع


RE: عدد مرات الضغط - dubai.eig - 07-02-17

(06-02-17, 08:48 PM)مساعدة كتب : لا يوجد جدول في قاعدة البيانات

تفضل تعديل الكود وفي المرفقات قاعدة البيانات وتم فيها اضافة الجدول
كود :
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 [id] = @id ", con)
           cmd.Parameters.AddWithValue("@clickCount", clickCount)
           cmd.Parameters.AddWithValue("@id", 1)


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

       End Using

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

   End Sub




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

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

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

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

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

       End Using

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

   End Sub



   ' التأكد من وجود سجل برقم محدد
   Private Function isThereId(id As Integer) As Boolean
       Using cmd As New SQLiteCommand("SELECT COUNT( [id] )  FROM [click]  WHERE [id] = @id ", con)
           cmd.Parameters.AddWithValue("@id", 1)

           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] ( [clickCount] ) VALUES ( 0 ) ", con)
           cmd.Parameters.AddWithValue("@id", 1)
           If con.State <> ConnectionState.Open Then con.Open()
           cmd.ExecuteNonQuery()
           con.Close()

       End Using
   End Sub


End Class


بارك الله فيك

ممكن اتعبك معاي شويه

محتاج اضافه على الكود

وهيه بعد 24 ساعه يتم تصفير الرقم 

وفي ميزان اعمالك


RE: عدد مرات الضغط - مساعدة - 07-02-17

هنا سوف نعتمد على التاريخ وليس 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 لانه سوف يتجاهل الوقت، وهذا مهم إذا كان التركيز على التاريخ فقط