منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
استفسار عن تخزين الوقت في قاعدة البيانات - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم قواعد البيانات (http://vb4arb.com/vb/forumdisplay.php?fid=40)
+--- قسم : قسم أسئلة قواعد البيانات تحت بيئة الـ.NET (http://vb4arb.com/vb/forumdisplay.php?fid=41)
+--- الموضوع : استفسار عن تخزين الوقت في قاعدة البيانات (/showthread.php?tid=41209)



استفسار عن تخزين الوقت في قاعدة البيانات - strongriseman - 18-04-22

السلام عليكم 
وكل عام وانتم بخير  

سؤالي عدي حقلين من نوع تكست يمثلان وقت الحضور والانصراف  
ويظهر الوقت بالطريقة التالية  مثلا   6:13 ص او  4:20 م 
عند الحفظ لقاعدة البيانات تظهر مشكلة وحاولت بكل الطرق بدون فائدة 
استعملت هذا الكود للحفظ  مع العلم استعمل قاعدة بيانات من نوع sqlserver  ونوع الحقل time(7)

Dim CmdInsert As New SqlCommand
        With CmdInsert
            .Connection = Con
            .CommandType = CommandType.Text
            .CommandText = "Insert Into wardya (num , name , time1 , time2 , period , addrate)values( @num ,  @name ,  @time1 ,  @time2 ,  @period ,  @addrate)"
            .Parameters.Clear()
            .Parameters.AddWithValue("@num", SqlDbType.Int).Value = Val(Txtnum.Text)
            .Parameters.AddWithValue("@name", SqlDbType.VarChar).Value = Txtname.Text.Trim
            'Now.ToString("hh:mm tt")
            .Parameters.AddWithValue("@time1", SqlDbType.Date).Value = Format(TextBox3.Text.ToString, "hh:mm tt")
            .Parameters.AddWithValue("@time2", SqlDbType.Date).Value = Format(TextBox4.Text.ToString, "hh:mm tt")
            .Parameters.AddWithValue("@period", SqlDbType.Date).Value = Format(TextBox5.Text.ToString, "hh:mm tt")
            '.Parameters.AddWithValue("@time1", SqlDbType.Date).Value = (TextBox3.Text)
            '.Parameters.AddWithValue("@time2", SqlDbType.Date).Value = (TextBox4.Text)
            '.Parameters.AddWithValue("@period", SqlDbType.Date).Value = (TextBox5.Text)
            .Parameters.AddWithValue("@addrate", SqlDbType.Int).Value = Val(Txtaddrate.Text)
        End With
        Try
            If Con.State = 1 Then Con.Close()
            Con.Open()
            CmdInsert.ExecuteNonQuery()
            Con.Close()
            MsgBox("تم إضافة السجل بنجاح", MsgBoxStyle.Information, "حفظ")
            newnum()

            CmdInsert = Nothing
        Catch ex As Exception
            Con.Close()
            MsgBox(Err.Description, MsgBoxStyle.Information)
        Finally
            If Con.State = ConnectionState.Open Then Con.Close()
        End Try


RE: استفسار عن تخزين الوقت في قاعدة البيانات - ابراهيم ايبو - 19-04-22

السلام عليكم ورحمة الله وبركاته
اخي الكريم
المشكلة اعتقد والله اعلم في تحويل قيم الوقت في مربعات النصوص التي تمثل الوقت صباحا او مساء
يجب تحويل هذه القيم الى الساعة نظام 24 هذا من جانب 
الامر الآخر هو حرفي (م - ص) بالعربي يجب استبدالها بـ (AM - PM)
وبالنسبة للوقت انت اعطيت الباراميتر من نوع تاريخ فقط ويجب استخدام DateTime
قم بالتجربة باستبدال هذه الاسطر الثلاثة   

أذا كانت صباحا ومساء بالعربي في التكست بوكس استخدم هذه السطور
كود :
           .Parameters.AddWithValue("@time1", SqlDbType.DateTime).Value = Convert.ToDateTime(TextBox3.Text.Replace("م", "PM").Replace("ص", "AM")).ToString("HH:mm")
           .Parameters.AddWithValue("@time2", SqlDbType.DateTime).Value = Convert.ToDateTime(TextBox4.Text.Replace("م", "PM").Replace("ص", "AM")).ToString("HH:mm")
           .Parameters.AddWithValue("@period", SqlDbType.DateTime).Value = Convert.ToDateTime(TextBox5.Text.Replace("م", "PM").Replace("ص", "AM")).ToString("HH:mm")
 او هذه اذا كانت AM PM
كود :
           .Parameters.AddWithValue("@time1", SqlDbType.DateTime).Value = Convert.ToDateTime(TextBox3.Text).ToString("HH:mm")
           .Parameters.AddWithValue("@time2", SqlDbType.DateTime).Value = Convert.ToDateTime(TextBox4.Text).ToString("HH:mm")
           .Parameters.AddWithValue("@period", SqlDbType.DateTime).Value = Convert.ToDateTime(TextBox5.Text).ToString("HH:mm")



RE: استفسار عن تخزين الوقت في قاعدة البيانات - strongriseman - 22-04-22

اشكرك من كل قلبي
ساجرب