منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[سؤال] اريد ان يتم تنفيذ هذا كود الحفظ او التحديث بسرعه عنذ اختيار سطر من الداتا جريد - نسخة قابلة للطباعة

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



اريد ان يتم تنفيذ هذا كود الحفظ او التحديث بسرعه عنذ اختيار سطر من الداتا جريد - dametucorazon - 30-07-18

السلام عليكم ورحمه الله وبركاته

حياكم الله عزوجل
استخدم هذا الكود اولا اقوم بالبحث  عن رقم ID اذا وجده يذهب لجزء التحديث
واذا لم يجده يضفيه كسجل جديد
المشكله ان يحدث تعليق حوالي 3 ثواني حتي يتم التنفيذ لكن التنفيذ سليم فقط اريد ان يكون اسرع او لا يحدث تعليق
الكود المستخدم
اولا البحث عن ال id موجود ام لا
PHP كود :
Dim search_command As New MySqlCommand("SELECT * FROM `student` WHERE `Id` = @id"connection)

 
       search_command.Parameters.Add("@id"MySqlDbType.Int64).Value TextBox1.Text

        Dim adapter 
As New MySqlDataAdapter(search_command)

 
       Dim table As New DataTable()

 
       Try

            adapter
.Fill(table)

 
           If table.Rows.Count 0 Then

goto Updatesub

            Else

goto Savesub
            End 
If

 
       Catch ex As Exception

            MessageBox
.Show("ERROR")

 
       End Try 
كود التحديث
PHP كود :
Updatesub:
 
 Private Sub ButtonInsert_Click(sender As ObjectAs EventArgsHandles ButtonInsert.Click

        Dim insert_command 
As New MySqlCommand("INSERT INTO `student`(`FullName`, `Address`, `BirthDate`) VALUES (@fln,@adds,@brd)"connection)
 
       insert_command.Parameters.Add("@fln"MySqlDbType.VarChar).Value TextBox2.Text
        insert_command
.Parameters.Add("@adds"MySqlDbType.VarChar).Value TextBox3.Text
        insert_command
.Parameters.Add("@brd"MySqlDbType.Date).Value DateTimePicker1.Value

       
If command.ExecuteNonQuery() = 1 Then
            MessageBox
.Show("Data Inserted")

 
       Else
            MessageBox
.Show("Data NOT Inserted")
 
       End If

 
   End Sub 
كود الاضافه
PHP كود :
Savesub:

 
       Dim update_command As New MySqlCommand("UPDATE `student` SET `FullName`=@fln,`Address`=@adds,`BirthDate`=@brd WHERE `Id` = @id"connection)
 
       update_command.Parameters.Add("@id"MySqlDbType.Int64).Value TextBox1.Text
        update_command
.Parameters.Add("@fln"MySqlDbType.VarChar).Value TextBox2.Text
        update_command
.Parameters.Add("@adds"MySqlDbType.VarChar).Value TextBox3.Text
        update_command
.Parameters.Add("@brd"MySqlDbType.Date).Value DateTimePicker1.Value

       
If command.ExecuteNonQuery() = 1 Then
            MessageBox
.Show("Data Updated")

 
       Else
            MessageBox
.Show("Data NOT Updated")
 
       End If

 
   End Sub 



RE: اريد ان يتم تنفيذ هذا كود الحفظ او التحديث بسرعه عنذ اختيار سطر من الداتا جريد - GameOver - 30-07-18

اذا كنت تتعامل مع قاعدة بيانات في استضافة فهذا طبيعي لانك تتصل بقاعدة البيانات مباشرة
وهذه الطريقة لها مخاطر كبيرة لامكانية تسرب نص الاتصال والذي يحتوى بيانات الاتصال كاملة
بما فيها الرابط واسم المستخدم وكلمة المرور

الافضل ان تتعامل بطريقة ارسال البيانات باسلوب POST وهي معروفة غالبا
أو أن تستخدم اسلوب WebService ولو انه ليس سهلا لمن لا يعرفها


RE: اريد ان يتم تنفيذ هذا كود الحفظ او التحديث بسرعه عنذ اختيار سطر من الداتا جريد - elgokr - 30-07-18

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

الاسباب التى تترتب على تاخير تنفيذ الامر وما شبه

1- سرعة اداء السيرفر الذى يحتوى على قاعدة البيانات.
2- حجم قاعدة البيانات من البيانات الداخلية عند اتمام الاستعلام
3- طريقة الاستعلام عن طريق نص او رقم لحجم الذاكرة المستهلكة عند التنفيذ
4- كثرة تنفيذ الامر فى اوان واحد...

بخصوص رقم 2 من المؤكد انه مشكوك به حيث لا اعتقد 
انك فى الوقت الحالى تمتلك قاعدة بيانات تحتوى على بيانات كبيرة

وبخصوص رقم 3 خارج النطاق حيث انك تقوم بالبحث عن طريق رقم وليس نص
ولكن انصح ان تجعل نوع الاستعلام 
PHP كود :
Int32
بدلاً من
Int64 

فلا يوجد اى فرق بينهم ولكن تجنباً من حالة السيرفر
بخصوص 1 و 4 فهم الاهم واكثرهم اهمية هو رقم 4
يجب وضع كود فى بداية الزر وهو كالتالى
كود :
Button1.Enabled = False

وينتهى بكود ويفضل قبل ظهور الرسالة وهو
كود :
Button1.Enabled = True

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

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

ناتى فى رقم 1 واخراً وهو العامل الرئيسي
الذى يترتب عليه سرعة تنفيذ الامر فى استقبال وارسال البيانات
فيجب قبل مواصفات السيرفر هو حالة الانترنت 
والاتصال بالخادم ان لا يكون منقطع فى بعض الاحيان
والمواصفات هو عامل رئيسيى لتنفيذ الامر فى غمضة عين 
فكلما كان المواصفات اعلى كلما كان التنفيذ اسرع

تحياتى لك
وتمنياتى لك التوفيق



RE: اريد ان يتم تنفيذ هذا كود الحفظ او التحديث بسرعه عنذ اختيار سطر من الداتا جريد - dametucorazon - 30-07-18

الاخ GameOver   شكرا لك
الاخ elgokr جزاك الله خيرا علي التوجيه


RE: اريد ان يتم تنفيذ هذا كود الحفظ او التحديث بسرعه عنذ اختيار سطر من الداتا جريد - elgokr - 30-07-18

الشكر لله

تحياتى لك
وتمنياتى لك التوفيق