الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ممكن شرح مبسط للكود..؟

بدأه iman.i في 18 مايو 2011 · 5 رد · 617 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم..

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

Imports System.Data.SqlClient

Public Class frm_add_product

    Private da As New SqlDataAdapter("SELECT * FROM Products", cn)
    Private ds As New DataSet
    Private ProductsBS As BindingSource = New BindingSource
    Dim SQLstr As String = "SELECT * FROM Products"
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        MsgBox(cn.State.ToString)
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        cn.Open()
        Try
            da.Fill(ds, "Products")
            dg.DataSource = ds.Tables("Products")
        Catch ex As Exception

        End Try
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        da.InsertCommand = New SqlCommand("INSERT INTO Products VALUES (@Product_id,@Cust_id,@Product_name,@Fare_product,@Price,@Qty_produced,@qty_sold,@Qty_damaged,@Qty_Remainder)", cn)
        da.InsertCommand.Parameters.Add("@Product_id", SqlDbType.Int).Value = TextBox1.Text
        da.InsertCommand.Parameters.Add("@Cust_id", SqlDbType.Int).Value = TextBox2.Text
        da.InsertCommand.Parameters.Add("@Product_name", SqlDbType.NVarChar).Value = TextBox3.Text
        da.InsertCommand.Parameters.Add("@Fare_product", SqlDbType.Int).Value = TextBox4.Text
        da.InsertCommand.Parameters.Add("@Price", SqlDbType.Money).Value = TextBox5.Text
        da.InsertCommand.Parameters.Add("@Qty_produced", SqlDbType.Int).Value = TextBox9.Text
        da.InsertCommand.Parameters.Add("@qty_sold", SqlDbType.Int).Value = TextBox6.Text
        da.InsertCommand.Parameters.Add("@Qty_damaged", SqlDbType.Int).Value = TextBox7.Text
        da.InsertCommand.Parameters.Add("@Qty_Remainder", SqlDbType.Int).Value = TextBox8.Text
        da.InsertCommand.ExecuteNonQuery()



    End Sub

    Private Sub Label2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label2.Click

    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        da.DeleteCommand = New SqlCommand("DELETE FROM Products WHERE Product_id = '" & Trim(TextBox1.Text) & "'", cn)
        ' da.DeleteCommand.Parameters.Add("@Product_id", SqlDbType.Int).Value = ds.Tables(0).Rows(ProductsBS.Position)(0)

        da.DeleteCommand.ExecuteNonQuery()

        'ds.Clear()

        da.Fill(ds)
    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        da.SelectCommand = New SqlCommand("SELECT * FROM Products ", cn)
        ds.Clear()
        Try
            da.Fill(ds, "Products")
            dg.DataSource = ds.Tables("Products")
        Catch ex As Exception

        End Try
    End Sub

    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        Dim SavInto As New SqlCommand
        Dim DataAdapter1 As New SqlDataAdapter(SQLstr, cn)
        SavInto.Connection = cn
        SavInto.CommandType = CommandType.Text
        SavInto.CommandText = "DELETE FROM Products WHERE Product_id ='" & Trim(TextBox1.Text) & "'"
        'cn.Open()
        SavInto.ExecuteNonQuery()
        ds.Clear()
        DataAdapter1.Fill(ds, "Products")
        'cn.Close()
        MsgBox("تمت عملية الحذف في قاعدة البيانات بنجاح")
        ' ChangePosition()
    End Sub
End Class

وكمان يطلع لي الرساله التاليه عند اضافة سجل جديد ...مالمشكلة ..؟ومالحل..؟

ياااليت يكون الرد سريع..

جزااااكم الله كل خير...

post-245223-062562200 1305729474_thumb.j

المرفقات
المنتجات.jpg
#2

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

اختي بالنسبة لكود الاضاف السابق بسيط جدا يقوم بتعريف كائن من نوع SqlCommand والذي يمثل امر SQL وفي حالتك هو Insert وتم تمرير البيانات التي سيتم ادراجها الى الجدول من مربعات نص كلا حسب مهمته فاسم المنتج سيأتي من مربع النص TextBox3 وهكذا .. ومن ثم يتم تنفيذ الامر عبر الاجراء ExecuteNonQuery لأن الجملة ليست استعلام ولكن هناك خطأ في جمل تمرير الوسائط حيث ان الوسيط Price مثلا نوعه ليس نص وبرضه َQty_Sold نوعها صحيح فلهذا قومي بتحويل كل قيمة داخل مربع النص للنوع المناسب مثلا

    	da.InsertCommand.Parameters.Add("@qty_sold", SqlDbType.Int).Value =Convert.ToInt32(TextBox6.Text)

وهكذا قومي بتعديل البقية

.:: Wish to become better and better ::.

#3

السلام عليكم ..

يعطيكم العافيه وماقصرتو..

بس ممكن توضح الفرق بين طريقة الاضافه المذكورة سابقا وبي هذه الطريقه"هذا الكود"..؟

         'زر الاضافة
        cn.Open()
        Dim p_id = ComboBox1.Text
        Dim p_name = TextBox2.Text
        Dim f_p = TextBox3.Text
        Dim price = TextBox4.Text
        Dim q_p = TextBox5.Text
        Dim q_s = TextBox6.Text
        Dim q_d = TextBox7.Text
        Dim q_r = TextBox8.Text
        Dim icmd As String
        icmd = " insert INTO products (product_id,product_name,fare_product,price,qty_produced,qty_sold,qty_damaged,qty_remainder) VALUES (" & p_id & " , '" & p_name & "','" & f_p & "', '" & price & "', '" & q_p & "' , '" & q_s & "' , '" & q_d & "','" & q_r & "') "
        MyCommand = New SqlCommand(icmd, cn)
        Try
            MyCommand.ExecuteNonQuery()
        Catch c As Exception
            MsgBox(c.ToString)
        Finally
        End Try
        da = New SqlDataAdapter("SELECT product_id,product_name,fare_product,price,qty_produced,qty_sold,qty_damaged,qty_remainder from products", cn)
        ds.Clear()
        da.Fill(ds, "products")
        dg.DataSource = ds.Tables("products")
        cn.Close()
    End Sub

هذا شي وشي تاني ...ايش الفرق بين كود الحذف بزر رقم 3 وزر رقم 5..؟او بالاصح ايش وظيفة الكود بزر 3 و5..؟

وشي تالت ..لمن عملت التعديل يللي ذكرته طلع هادي الرساله..؟ايش الحل وايش المشكله..؟

وجزاااااااااكم الله كل خير...

post-245223-028730000 1305796164_thumb.j

المرفقات
المنتجات.jpg

تم تعديل هذه المشاركة بواسطة iman.i في 19 مايو 2011 في 12:10

#4

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

اختي بالنسبه للفرق بين الطريقه الاولى والثانيه ان الطريقة الثانيه تستخدم ال Concatenation يعني الربط بمعامل ال & لكنها مكلفة وتريد تركزي اما الاولى فقط نستخدم فيها الوسائط ومن ثم نعرف قيمها

بالنسبه للخطأ الي طلع تأكدي من تنسيق البيانات التي ادخلت في مربع النص 6 لان مشكلتك في تسمية الكائنات يمكن يكون هو المخصص للكميه ويمكن لا الرجاء التأكد ؟!!

اما بالنسبه للحذف والتعديل سيتم الحديث عنها ريثما يتم تعديل المشكله الاولى

.:: Wish to become better and better ::.

#5

السلا م عليكم..

جزاك الله خيرا..

لقد قمت بتغير جميع التنسيقات لما يناسبها .. بس حقل name _id من نوع nvarchar...ماعرفت ايش اختاره تنسيق ..؟ايش ممكن اختار..؟

هذا شي وشي تاني ...>>ممكن افهم من كلامك انو الطريقه الاولى اسهل وافضل..؟

وماهو وظيفة زر 3و زر5..؟

جزاكم الله كل خير...

#6

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

اختي بالنسبه لطريقة الكود الاول مش من ناحيه السهوله ولكنها تحد من عمليه الادخال وتقلل من عمليات ال Concatenation .. اما بالنسبه للحقل name _id اول مره اشوفه يعني غير موجود بالكود؟؟ المهم اذا كان نص nvarchar مناسب اما اذا كان رقم يمكنك استخدام int

اما بالنسبه لكود الحذف فهو مشابه لسابقه عدا انه يقوم بالحذف ويستخدم الامر Delete وكذلك كود التعديل يستخدم Update اعيدي النظر اليهم وستلاحظي الفرق ..

.:: Wish to become better and better ::.

مواضيع مشابهة