تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
خطأ في الحفظ
#1
برجاء المساعدة أنا جديد علي الفيجوال نت 
بيظهر خطأ في حفظ بينات الداتا جريد لقاعدة البيانات
المثال في المرفقات


الملفات المرفقة
.rar   datagridvew.rar (الحجم : 87.75 ك ب / التحميلات : 10)
الرد
تم الشكر بواسطة:
#2
مرحباً اخى nourmandour

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

ولكن يمكنك تعديل على السورس لديك
بنائاً لما ساقوم بشرحه الان

تعال على كود الحفظ خاص الحدث Button2_Click
واستبدل كامل الكود بداخله بهذا الكود
كود :
       For i As Integer = 0 To dgrid.RowCount - 1
           Dim sql As String = "INSERT INTO fat_ba (id, numb, [date], sdad, amel, mgma, sanf, kmea, sar, agmale, mdfa) Values (@id, @numb, @date, @sdad, @amel, @mgma, @sanf, @kmea, @sar, @agmale, @mdfa)"
           Dim cm As New OleDb.OleDbCommand(sql, conn)
           Dim sdad As String = ""
           If RadioButton1.Checked = True Then
               sdad = "نقدي"
           ElseIf RadioButton2.Checked = True Then
               sdad = "اجلة"
           ElseIf RadioButton3.Checked = True Then
               sdad = "جزء نقضي"
           End If

           With cm.Parameters
               .AddWithValue("@id", TextBox1.Text).DbType = DbType.String
               .AddWithValue("@numb", dgrid.Rows(i).Cells(0).Value).DbType = DbType.Int32
               .AddWithValue("@date", TextBox2.Text).DbType = DbType.String
               .AddWithValue("@sdad", sdad).DbType = DbType.String
               .AddWithValue("@amel", ComboBox2.Text).DbType = DbType.String
               .AddWithValue("@mgma", dgrid.Rows(i).Cells(1).Value).DbType = DbType.String
               .AddWithValue("@sanf", dgrid.Rows(i).Cells(2).Value).DbType = DbType.String
               .AddWithValue("@kmea", dgrid.Rows(i).Cells(3).Value).DbType = DbType.Int32
               .AddWithValue("@sar", dgrid.Rows(i).Cells(4).Value).DbType = DbType.Currency
               .AddWithValue("@agmale", dgrid.Rows(i).Cells(5).Value).DbType = DbType.Currency
               .AddWithValue("@mdfa", 0).DbType = DbType.Currency
           End With

           If (conn.State = ConnectionState.Open) Then conn.Close()
           conn.Open()
           cm.ExecuteNonQuery()
           conn.Close()
       Next
       MsgBox("تم الحفظ")

قم بفتح شاشة mdconn
واستبدل كامل الكود بها بهذا الكود
كود :
Imports System.Data.OleDb

Module mdconn
   Public conn As New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=" & Application.StartupPath & "\data_1.mdb;user id=admin;jet oledb:database password=123")
End Module

بالنهاية لا تنسي ان تجعل السورس يعمل على بيئة 32Bit
من الواضح ان جهازك يعمل على بيئة 32Bit
لذلك لم يحدث معك اى مشكلة ولكن عند اختبار البرنامج
على جهاز من بيئة 64Bit فلا يمكنك تشغيل البرنامج لذلك حرصاً اجعل
البرنامج على بيئة 32Bit

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد
تم الشكر بواسطة: nourmandour , nourmandour , ابو روضة , حريف برمجة
#3
(12-04-19, 12:15 AM)elgokr كتب :
مرحباً اخى nourmandour

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

ولكن يمكنك تعديل على السورس لديك
بنائاً لما ساقوم بشرحه الان

تعال على كود الحفظ خاص الحدث Button2_Click
واستبدل كامل الكود بداخله بهذا الكود
كود :
       For i As Integer = 0 To dgrid.RowCount - 1
           Dim sql As String = "INSERT INTO fat_ba (id, numb, [date], sdad, amel, mgma, sanf, kmea, sar, agmale, mdfa) Values (@id, @numb, @date, @sdad, @amel, @mgma, @sanf, @kmea, @sar, @agmale, @mdfa)"
           Dim cm As New OleDb.OleDbCommand(sql, conn)
           Dim sdad As String = ""
           If RadioButton1.Checked = True Then
               sdad = "نقدي"
           ElseIf RadioButton2.Checked = True Then
               sdad = "اجلة"
           ElseIf RadioButton3.Checked = True Then
               sdad = "جزء نقضي"
           End If

           With cm.Parameters
               .AddWithValue("@id", TextBox1.Text).DbType = DbType.String
               .AddWithValue("@numb", dgrid.Rows(i).Cells(0).Value).DbType = DbType.Int32
               .AddWithValue("@date", TextBox2.Text).DbType = DbType.String
               .AddWithValue("@sdad", sdad).DbType = DbType.String
               .AddWithValue("@amel", ComboBox2.Text).DbType = DbType.String
               .AddWithValue("@mgma", dgrid.Rows(i).Cells(1).Value).DbType = DbType.String
               .AddWithValue("@sanf", dgrid.Rows(i).Cells(2).Value).DbType = DbType.String
               .AddWithValue("@kmea", dgrid.Rows(i).Cells(3).Value).DbType = DbType.Int32
               .AddWithValue("@sar", dgrid.Rows(i).Cells(4).Value).DbType = DbType.Currency
               .AddWithValue("@agmale", dgrid.Rows(i).Cells(5).Value).DbType = DbType.Currency
               .AddWithValue("@mdfa", 0).DbType = DbType.Currency
           End With

           If (conn.State = ConnectionState.Open) Then conn.Close()
           conn.Open()
           cm.ExecuteNonQuery()
           conn.Close()
       Next
       MsgBox("تم الحفظ")

قم بفتح شاشة mdconn
واستبدل كامل الكود بها بهذا الكود
كود :
Imports System.Data.OleDb

Module mdconn
   Public conn As New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=" & Application.StartupPath & "\data_1.mdb;user id=admin;jet oledb:database password=123")
End Module

بالنهاية لا تنسي ان تجعل السورس يعمل على بيئة 32Bit
من الواضح ان جهازك يعمل على بيئة 32Bit
لذلك لم يحدث معك اى مشكلة ولكن عند اختبار البرنامج
على جهاز من بيئة 64Bit فلا يمكنك تشغيل البرنامج لذلك حرصاً اجعل
البرنامج على بيئة 32Bit

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

الف الف الف شكرا 
وتسلم ايدك
 
في استفسار بخصوص 32bit يعني البرنامج 
بعد ما يخلص موش يشتغل علي اي نسخة غير 32 bit
الرد
تم الشكر بواسطة: ابو روضة
#4
الشكر لله والحمد لله
والحمد لله على كل حال

بخصوص بيئة الـ 32Bit للبرنامج
فهو يعملى على نظام 32Bit و 64Bit
عكس 64Bit لا يمكن العمل على 32Bit 

والمقصود بانك تجعل البرنامج على بيئة 32Bit
وهنا ليتم استعمال ملفات الـ Dll خاص بالاتصال بقاعدة البيانات
لان الاصدارا المستخدم لا يحتاج 
الى تثبيت اى اضافات مع البرنامج على الجهاز الاخر
لان بطبيعة الحال اى نسخة Windows تحتوى على ملفات Dll
تخص هذا الاتصال ولكن الملفات ببيئة 32Bit

لهذا السبب سيحدث مشكلة
اذا تم فتح البرنامج على نظام 64Bit
بدون تعديل بيئة البرنامج نفسه

اتمنى ان تكون الصورة وضحت لك كاملاً

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد
تم الشكر بواسطة: ابو روضة


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كود التعديل و الحفظ و كود الادراج او اضافة سجل جديد anis 11 575 06-04-19, 06:08 PM
آخر رد: Emam emam
  خطأ فى كود الحفظ احمد خطاب 1 102 30-03-19, 05:20 PM
آخر رد: elgokr
  كيف اجعل زر الحفظ يقوم بعمل حفظ وتعديل فى نفس الوقت atef_020 30 956 28-02-19, 02:09 PM
آخر رد: حريف برمجة
  عدم الحفظ في قاعدة البيانات في الوندوز 64 بايت raaddawood 9 341 06-02-19, 01:16 PM
آخر رد: sendbad100
  [VB.NET] مساعدة في كود الحفظ Hamoody 2 203 06-02-19, 02:45 AM
آخر رد: Hamoody
  عدم الحفظ في قاعدة البيانات في الوندوز 64 بايت raaddawood 2 158 05-02-19, 11:59 AM
آخر رد: raaddawood
  اريد زر الحفظ هو نفس زر التعديل سمير جمال 4 259 26-01-19, 08:54 PM
آخر رد: سمير جمال
  [سؤال] مشكلة في كود الحفظ عاشق الرسول 9 505 16-01-19, 02:43 AM
آخر رد: عاشق الرسول
  [VB.NET] ;سؤال كيفية تعديل المدخلات في (الداتا قريد فيو ) قبل الحفظ في قاعدة البيانات EYADISMAIL 4 411 16-01-19, 01:26 AM
آخر رد: EYADISMAIL
  ارجو المساعدة كيف يتم الحفظ والحذف لاكثر من جدول باستخدام DATA SET يوجد مشروع للتعديل abdullhadi999 6 372 16-01-19, 12:59 AM
آخر رد: EYADISMAIL

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم