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

نسخة كاملة : عندى مشكله بكود التعديل فى قاعده البيانات
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم 

عندى مشكله بكود التعديل على البيانات 

مرفق لكم البرنامج بلغه فيجوال 2005 وقاعده البيانات

كود :
Public Sub ok()
       Dim sql As String = "select * from mas where ID=" & Val(idtxt.Text) & ""
       If Conn.State() Then Conn.Close()
       Conn.Open()
       Dim cmd As New OleDbCommand(sql, Conn)
       Dim dr As OleDbDataReader
       dr = cmd.ExecuteReader()

       If TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox3.Text = "" Or TextBox4.Text = "" Then
           MsgBox("إدخل الحقول - احد الحقول فارغ")
           Exit Sub
       Else
           Try
               sql = "update mas set hom='" & TextBox4.Text & "', user='" & TextBox1.Text & "', pass='" & TextBox2.Text & "', cat='" & CheckBox3.CheckState & "', payy='" & CheckBox4.CheckState & "', add='" & CheckBox1.CheckState & "', cas=" & CheckBox5.CheckState & " where ID=" & Val(idtxt.Text) & ""
               Dim cmd2 As New OleDbCommand(sql, Conn)
               cmd2.ExecuteNonQuery()
               Conn.Close()
               MessageBox.Show("         تمت عملية التعديل بنجاح         ")

           Catch ex As Exception
               Conn.Close()
               MessageBox.Show(ex.Message)
           End Try
       End If

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


[attachment=17522]


هكذا :

كود :
               sql = "update [mas] set [hom] = '" & TextBox4.Text & "', [user]= '" & TextBox1.Text & "', [pass]= '" & TextBox2.Text & "', [cat] = " & CheckBox3.Checked & ", [payy]= " & CheckBox4.Checked & ", [add] = " & CheckBox1.Checked & ", [cas] = " & CheckBox5.Checked & " where ID = " & Val(idtxt.Text)
[attachment=17523]
أخي عبد الله ما فرق بين الكود الموجود وهذا الكود 
وأيهما أفضل


PHP كود :
       Using CNN As OleDbConnection Conn()
 
           CNN.Open()
 
           Dim str As String = ("Update [Anz1] set 
                [MA1]=@MA1,[MA2]=@MA2,[MA3]=@MA3,[MA4]=@MA4,[MA5]=@MA5,[MA6]=@MA6,[MA7]=@MA7,[MA8]=@MA8,[MA9]=@MA9,[MA10]=@MA10,[MA11]=@MA11 WHERE Date = #" 
DateTimePicker1.Value.ToString("MM/dd/yyyy") & "#")
 
           Dim cmd As New OleDbCommand(strCNN)
 
           cmd.Parameters.AddWithValue("@MA1"Val(TextBox1.Text))
 
           cmd.Parameters.AddWithValue("@MA2"Val(TextBox2.Text))
 
           cmd.Parameters.AddWithValue("@MA3"Val(TextBox3.Text))
 
           cmd.Parameters.AddWithValue("@MA4"Val(TextBox4.Text))
 
           cmd.Parameters.AddWithValue("@MA5"Val(TextBox5.Text))
 
           cmd.Parameters.AddWithValue("@MA6"Val(TextBox6.Text))
 
           cmd.Parameters.AddWithValue("@MA7"Val(TextBox7.Text))
 
           cmd.Parameters.AddWithValue("@MA8"Val(TextBox8.Text))
 
           cmd.Parameters.AddWithValue("@MA9"Val(TextBox9.Text))
 
           cmd.Parameters.AddWithValue("@MA10"Val(TextBox10.Text))
 
           cmd.Parameters.AddWithValue("@MA11"Val(TextBox11.Text))
 
           cmd.ExecuteNonQuery()
 
           CNN.Close()
 
       End Using 

(27-03-18, 05:35 PM)عبدالله الدوسري كتب : [ -> ]وعليكم السلام ورحمة الله وبركاتة





هكذا :

كود :
               sql = "update [mas] set [hom] = '" & TextBox4.Text & "', [user]= '" & TextBox1.Text & "', [pass]= '" & TextBox2.Text & "', [cat] = " & CheckBox3.Checked & ", [payy]= " & CheckBox4.Checked & ", [add] = " & CheckBox1.Checked & ", [cas] = " & CheckBox5.Checked & " where ID = " & Val(idtxt.Text)

أخي عبد الله ما فرق بين الكود الموجود وهذا الكود 

وأيهما أفضل
الفرق :


الطريقة الأولى : تستطيع أن ترسل نصوص فقط مثل الحروف والأرقام والرموز وصح أو خطأ
كود :
sql = "update [mas] set [hom] = '" & TextBox4.Text & "', [user]= '" & TextBox1.Text & "', [pass]= '" & TextBox2.Text & "', [cat] = " & CheckBox3.Checked & ", [payy]= " & CheckBox4.Checked & ", [add] = " & CheckBox1.Checked & ", [cas] = " & CheckBox5.Checked & " where ID = " & Val(idtxt.Text)








الطريقة الثانية : تستطيع من خلالها إرسال أي نوع من أنواع البيانات , مثلاً  صور , ملفات , memory stream , bytes array ( لا يمكن للطريقة الأولى إرسال مثل هذة الأنواع من البيانات )
كود :
   Using CNN As OleDbConnection = Conn()
           CNN.Open()
           Dim str As String = ("Update [Anz1] set
               [MA1]=@MA1,[MA2]=@MA2,[MA3]=@MA3,[MA4]=@MA4,[MA5]=@MA5,[MA6]=@MA6,[MA7]=@MA7,[MA8]=@MA8,[MA9]=@MA9,[MA10]=@MA10,[MA11]=@MA11 WHERE Date = #" & DateTimePicker1.Value.ToString("MM/dd/yyyy") & "#")
           Dim cmd As New OleDbCommand(str, CNN)
           cmd.Parameters.AddWithValue("@MA1", Val(TextBox1.Text))
           cmd.Parameters.AddWithValue("@MA2", Val(TextBox2.Text))
           cmd.Parameters.AddWithValue("@MA3", Val(TextBox3.Text))
           cmd.Parameters.AddWithValue("@MA4", Val(TextBox4.Text))
           cmd.Parameters.AddWithValue("@MA5", Val(TextBox5.Text))
           cmd.Parameters.AddWithValue("@MA6", Val(TextBox6.Text))
           cmd.Parameters.AddWithValue("@MA7", Val(TextBox7.Text))
           cmd.Parameters.AddWithValue("@MA8", Val(TextBox8.Text))
           cmd.Parameters.AddWithValue("@MA9", Val(TextBox9.Text))
           cmd.Parameters.AddWithValue("@MA10", Val(TextBox10.Text))
           cmd.Parameters.AddWithValue("@MA11", Val(TextBox11.Text))
           cmd.ExecuteNonQuery()
           CNN.Close()
       End Using




الأفضل : الطريقة الثانية , مميزات أكثر, 

ولكن ممكن في بعض الأحوال تكفيني الطريقة الأولى