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

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

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

[HTML]Dim cmd As New OleDbCommand("update Zatea set Customer=@txt_Customer,Area=@Area_Combobox, Bayan=@lbox_bayan, Phone1=@txt_Phone1, Phone2=@txt_Phone2, Mobile=@txt_mobile, Fax=@txt_Fax, Email=@txt_Email,Notes=@txt_Note where zatea_id=txt_Zatea_id.text", Conn)


cmd.Parameters.AddWithValue("@Customer", OleDbType.VarChar).Value = txt_Customer.Text

cmd.Parameters.AddWithValue("@Area", OleDbType.VarChar).Value = Area_Combobox.Text
cmd.Parameters.AddWithValue("@bayan", OleDbType.VarChar).Value = lbox_Bayan.SelectedItem

'cm.Parameters.AddWithValue("@age", OleDbType.Integer).Value = Val(age.Text)
'cm.Parameters.AddWithValue("@dob", OleDbType.Date).Value = dob.Text

cmd.Parameters.AddWithValue("@Phone1", OleDbType.VarChar).Value = txt_Phone2.Text
cmd.Parameters.AddWithValue("@Phone2", OleDbType.VarChar).Value = txt_Phone1.Text
cmd.Parameters.AddWithValue("@Mobile", OleDbType.VarChar).Value = txt_Mobile.Text
cmd.Parameters.AddWithValue("@Fax", OleDbType.VarChar).Value = txt_fax.Text

cmd.Parameters.AddWithValue("@Email", OleDbType.VarChar).Value = txt_Email.Text
cmd.Parameters.AddWithValue("@Notes", OleDbType.VarChar).Value = txt_Note.Text


DataConnection()

Try
cmd.ExecuteNonQuery()
MsgBox("تم التعديل بنجاح", MsgBoxStyle.Information, "")
Catch ex As Exception
MsgBox(Err.Description, MsgBoxStyle.Critical, "")

End Try[/HTML]
كود :
cmd.Parameters.AddWithValue("@Phone1", OleDbType.VarChar).Value = txt_Phone2.Text
cmd.Parameters.AddWithValue("@Phone2", OleDbType.VarChar).Value = txt_Phone1.Text
cmd.Parameters.AddWithValue("@Mobile", OleDbType.VarChar).Value = txt_Mobile.Text


ما نوع البيانات التي نسختها انا من موضوعك؟ ان كان رقم فضع بدل كلمة varchar ضع نوع int او integer
وما هي رسالة الخطا؟؟
السلام عليكم

شكرا اخي سعود على اجابتك

نوع البيانات هي من النوع string

ورسالة الخطأ
No value given for one or more required Parameters

وفيما يلي المثال

ارجو تعديل الكود المرفق بالمثال، والاشارة الى مكمن الخطأ الذي وقعت فيه، حتى اتعلم

والف شكر
وكل عام وانتم بخير
الخطا اللي واجهني بالمثال هو
إقتباس :Update requires a valid InsertCommand when passed DataRow collection with new rows.

ويعني لابد من اضافة كائن امر ادخال

والحل هكذا
بعد تعريف da التعريف الاول
كود :
Dim da As OleDb.OleDbDataAdapter

اسفلها نكتب
كود :
Dim ic As OleDbCommandBuilder


والتعيين لـ da
كود :
da = New OleDb.OleDbDataAdapter(SQL, Conn)

نكتب بعده التالي:
كود :
ic = New OleDbCommandBuilder(da)
اوووووووووووه معلش سانظر بكود التعديل Smile
انظر المثال بعد التعديل
لما لا تستخدم الكود هكذا

PHP كود :
Dim UpdateStr As String "Update Table1 Set Column1 = @Column1,Column2 = @Column2,Column3 = @Column3 Where Column1 = @OldColumn1"
        
Dim UpdateCmd As New OleDbCommand(UpdateStrCon)

        
UpdateCmd.Parameters.Add("@Column1"OleDbType.Char20"Column1")
        
UpdateCmd.Parameters.Add("@Column2"OleDbType.Char20"Column2")
        
UpdateCmd.Parameters.Add("@Column3"OleDbType.Char20"Column3")
        
UpdateCmd.Parameters.Add("OldColumn1"OleDbType.Char20"Column1").SourceVersion DataRowVersion.Original

        Dim DataAdapter1 
As New OleDbDataAdapter
        DataAdapter1
.UpdateCommand UpdateCmd 
الف الف شكر اخي
سعود
وجزاك الله الف خير، وضاعف اجرك في هذه الايام الفضيلة
تتبعت الحل الذي تفضلت به، وعرفت اين خطئي

بارك الله فيك
والسلام عليكم
شكرا اخي
ahmed_Online
ساجرب الطريقة التي تفضلت بها

والف شكر على محاولتك اجابتي
والسلام عليكم
الصفحات : 1 2