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


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


وهذه هي الاكواد


كود :
Imports System.Data.OleDb
Imports System.Data
Imports System.Globalization
Imports System.IO
Imports System.Drawing.Image
Public Class UserControl2
   Dim con As New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=" & Application.StartupPath & "\gastec.mdb;user id=admin;jet oledb:database password=343282")

   Private Sub UserControl2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       Guna.UI.Lib.GraphicsHelper.DrawLineShadow(Me, Color.Black, 50, 20, Guna.UI.WinForms.VerHorAlign.VerticalLeft)

   End Sub

   Private Sub usr_TextChanged(sender As Object, e As EventArgs)

   End Sub

   Private Sub GunaGradientButton3_Click(sender As Object, e As EventArgs) Handles GunaGradientButton3.Click
       OpenFileDialog1.Filter = "Image Formats (*.PNG; *.JPG; *.BMP) | *.PNG; *.JPG; *.BMP | All Files (*.*) | *.*"
       'Dim OpenFileDialog1 As New OpenFileDialog
       With OpenFileDialog1
           If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.Cancel Then
               MsgBox("image is not choised")
               Return
           Else
               photoadd.Image = Image.FromFile(OpenFileDialog1.FileName)
           End If
       End With
   End Sub

   Private Sub GunaGradientButton1_Click(sender As Object, e As EventArgs) Handles GunaGradientButton1.Click
       If (String.IsNullOrEmpty(id.Text)) Then
           MessageBox.Show("يجب ادخال الاسم اولا قبل الحفظ", "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error)
           Return
       End If
       '==============================================================================================================

       Try

           Dim cmd As New OleDbCommand("insert into newcust ([NationalID],[pName],[Address],[Phone],[City],[CarNumber],[carModel],[carChassis],[MotorNumber],[Payment],[TotalPrice],[nDate]) values(@id,@gname,@address,@phone,@city,@carnum,@model,@chassis,@motornu,@pay,@cash,@gdate,@photoadd)", con)
           cmd.Parameters.AddWithValue("@NationalID", id.Text)
           cmd.Parameters.AddWithValue("@pName", gname.Text)
           cmd.Parameters.AddWithValue("@Address", address.Text)
           cmd.Parameters.AddWithValue("@Phone", phone.Text)
           cmd.Parameters.AddWithValue("@City", city.Text)
           cmd.Parameters.AddWithValue("@CarNumber", carnum.Text)
           cmd.Parameters.AddWithValue("@carModel", model.Text)
           cmd.Parameters.AddWithValue("@carChassis", chassis.Text)
           cmd.Parameters.AddWithValue("@MotorNumber", motornu.Text)
           cmd.Parameters.AddWithValue("@Payment", pay.Text)
           cmd.Parameters.AddWithValue("@TotalPrice", cash.Text)
           cmd.Parameters.AddWithValue("@nDate", gdate.Text)

           Dim ms = New IO.MemoryStream()
           photoadd.Image.Save(ms, photoadd.Image.RawFormat)
           Dim bytes = ms.ToArray()
           cmd.Parameters.AddWithValue("@Photo", bytes)


           'فتح الاتصال وتاكيد الاضافه وبعد ذلك اغلاق الاتصال
           con.Open()
           cmd.ExecuteNonQuery()
           con.Close()

           'اظهار رساله للمستخدم تبين له نجاح اضافته واغلاق الاتصال واغلاق الفورم بتاع الاضافه والذهاب الى الفورم الرئيسى
           MsgBox("تمت عملية الاضافة والحفظ في قاعدة البيانات بنجاح", 64, "حفظ الاضافة")

           id.Text = ""
           gname.Text = ""
           address.Text = ""
           phone.Text = ""
           city.Text = ""
           carnum.Text = ""
           model.Text = ""
           chassis.Text = ""
           motornu.Text = ""
           pay.SelectedIndex = -1
           cash.Text = ""
           gdate.Text = Date.Today
           photoadd.Text = Nothing


       Catch ex As Exception
           MessageBox.Show(ex.Message)
       End Try
   End Sub
End Class


وشكرا
الرد }}}
#2
أخي الفاضل :
الرسالة تقول ان الاتصال بقاعدة البيانات مفتوح
اقترح عليك استخدام هذا الامر قبل فتح الاتصال بقاعدة البيانات

كود :
If con.State() Then con.Close()


وذلك للتحقق من حالة الاتصال ةاغلاقها
Don't Be The Perfect one
be the right one
الرد }}}
تم الشكر بواسطة: mazentq , asemshahen5 , ابراهيم ايبو
#3
السلام عليكم
كما قال الأخ العزيز : boudyonline
الرسالة معناها أن الاتصال بقاعدة البيانات ليس مغلق و أنه مفتوح .. و بالتالى لا يستطيع البرنامج فتح الاتصال و هو مفتوح بالفعل .. لذا وجب عليك استخدام الكود الذى وضعه الأخ boudyonline بارك الله فيه .. و الذى يضمن لك اغلاق الاتصال و اعادة فتح الاتصال .. و أى سؤال لا تتردد و نحن كلنا معك
الرد }}}
تم الشكر بواسطة: mazentq , asemshahen5 , ابراهيم ايبو
#4
الف شكر جزاكم الله خير
الرد }}}
تم الشكر بواسطة: asemshahen5 , ابراهيم ايبو
#5
(21-05-20, 10:21 PM)DR.YASER كتب : السلام عليكم
كما قال الأخ العزيز : boudyonline
الرسالة معناها أن الاتصال بقاعدة البيانات ليس مغلق و أنه مفتوح .. و بالتالى لا يستطيع البرنامج فتح الاتصال و هو مفتوح بالفعل .. لذا وجب عليك استخدام الكود الذى وضعه الأخ   boudyonline  بارك الله فيه .. و الذى يضمن لك اغلاق الاتصال و اعادة فتح الاتصال .. و أى سؤال لا تتردد و نحن كلنا معك

حطيت الكود وكله تمام بس بيجبلي الرسالة دي مع اني التكتست بوكس متوافق مع ترتيب قاعدة البيانات 
الرد }}}
تم الشكر بواسطة: asemshahen5 , ابراهيم ايبو
#6
الرسالة معناها ان نوع البيانات المدخلة لا يتوافق مع نوع الحقل
كأن يتم مثلا ادخال نص الى حقل رقمي ... او تاريخ ...
راجع نوع الحقل والبيانات المدخلة في التكست بوكس
Don't Be The Perfect one
be the right one
الرد }}}
#7
(22-05-20, 01:41 PM)boudyonline كتب : الرسالة معناها ان نوع البيانات المدخلة لا يتوافق مع نوع الحقل
كأن يتم مثلا ادخال نص الى حقل رقمي ... او تاريخ ...
راجع نوع الحقل والبيانات المدخلة في التكست بوكس

تمام تم حل المشكلة طلع خطاء بسيطللاسف مختش بالي منه 
بس سعات لما بعمل حفظ بتيجي رسالة مكتوب فيها كلمة overflow بس دي بتعت ايه او ايه معناها وشكرا
الرد }}}
تم الشكر بواسطة: asemshahen5 , ابراهيم ايبو
#8
(21-05-20, 10:21 PM)DR.YASER كتب : السلام عليكم
كما قال الأخ العزيز : boudyonline
الرسالة معناها أن الاتصال بقاعدة البيانات ليس مغلق و أنه مفتوح .. و بالتالى لا يستطيع البرنامج فتح الاتصال و هو مفتوح بالفعل .. لذا وجب عليك استخدام الكود الذى وضعه الأخ   boudyonline  بارك الله فيه .. و الذى يضمن لك اغلاق الاتصال و اعادة فتح الاتصال .. و أى سؤال لا تتردد و نحن كلنا معك

سعات لما بعمل حفظ بتيجي رسالة مكتوب فيها كلمة overflow بس دي بتعت ايه او ايه معناها وشكرا

(21-05-20, 06:22 PM)boudyonline كتب : أخي الفاضل :
الرسالة تقول ان الاتصال بقاعدة البيانات مفتوح
اقترح عليك استخدام هذا الامر قبل فتح الاتصال بقاعدة البيانات

كود :
If con.State() Then con.Close()


وذلك للتحقق من حالة الاتصال ةاغلاقها
سعات لما بعمل حفظ بتيجي رسالة مكتوب فيها كلمة overflow بس دي بتعت ايه او ايه معناها وشكرا
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , asemshahen5
#9
(22-05-20, 08:01 AM)mazentq كتب :
(21-05-20, 10:21 PM)DR.YASER كتب : السلام عليكم
كما قال الأخ العزيز : boudyonline
الرسالة معناها أن الاتصال بقاعدة البيانات ليس مغلق و أنه مفتوح .. و بالتالى لا يستطيع البرنامج فتح الاتصال و هو مفتوح بالفعل .. لذا وجب عليك استخدام الكود الذى وضعه الأخ   boudyonline  بارك الله فيه .. و الذى يضمن لك اغلاق الاتصال و اعادة فتح الاتصال .. و أى سؤال لا تتردد و نحن كلنا معك

حطيت الكود وكله تمام بس بيجبلي الرسالة دي مع اني التكتست بوكس متوافق مع ترتيب قاعدة البيانات 


السلام عليكم ورحمة الله وبركاته
عيد فطر مبارك اخي الكريم
تظهر هذه الرسالة عند عدم توافق الحقول المطلوبة في الادخال ويبدو ان حقل الـ ID هو من نوع ترقيم تلقائي ولا حاجة لادخال رقم الاي دي في جملة الانسرت
اما رسالة الـ overflow فهي ان احد الحقول نوع بياناته اصغر من القيمة المدخلة وبذلك لايتسع لما هو مدخل
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}}
تم الشكر بواسطة: asemshahen5 , mazentq
#10
(24-05-20, 05:32 AM)ابراهيم ايبو كتب :
(22-05-20, 08:01 AM)mazentq كتب :
(21-05-20, 10:21 PM)DR.YASER كتب : السلام عليكم
كما قال الأخ العزيز : boudyonline
الرسالة معناها أن الاتصال بقاعدة البيانات ليس مغلق و أنه مفتوح .. و بالتالى لا يستطيع البرنامج فتح الاتصال و هو مفتوح بالفعل .. لذا وجب عليك استخدام الكود الذى وضعه الأخ   boudyonline  بارك الله فيه .. و الذى يضمن لك اغلاق الاتصال و اعادة فتح الاتصال .. و أى سؤال لا تتردد و نحن كلنا معك

حطيت الكود وكله تمام بس بيجبلي الرسالة دي مع اني التكتست بوكس متوافق مع ترتيب قاعدة البيانات 


السلام عليكم ورحمة الله وبركاته
عيد فطر مبارك اخي الكريم
تظهر هذه الرسالة عند عدم توافق الحقول المطلوبة في الادخال ويبدو ان حقل الـ ID هو من نوع ترقيم تلقائي ولا حاجة لادخال رقم الاي دي في جملة الانسرت
اما رسالة الـ overflow فهي ان احد الحقول نوع بياناته اصغر من القيمة المدخلة وبذلك لايتسع لما هو مدخل
بارك الله فيك اخي ربنا يكرمك الف شكر
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  مشكلة فى Radiobutton عند وضع صورة فيه أبو جودة 3 72 أمس, 04:31 AM
آخر رد: Taha Okla
  [سؤال] لدي مشكلة عند قراءة ملف نصي من خلال أداة RichBox , حيث تظهر لي علامات استفهام Mostchar 2 149 07-04-24, 02:51 PM
آخر رد: تركي الحلواني
  [VB.NET] جملة اتصال بملف اكسيل ٢٠٠٣ بكلمة مرور Mr.H 6 197 30-03-24, 05:52 AM
آخر رد: justforit
  هل من الممكن العمل على قاعدة بيانات اكسل على الفيجوال بيسك خالد كامل1 4 140 24-03-24, 02:00 AM
آخر رد: خالد كامل1
  مشكلة في التايمر assuhimi 3 125 23-03-24, 04:51 PM
آخر رد: Taha Okla
  [سؤال] مشكلة اتصال مفتوح dell 2 171 12-03-24, 09:46 PM
آخر رد: dell
  مشكلة عند نقل البرنامج من فيجوال 2013 الى فيجوال 2017 strongriseman 5 155 12-03-24, 10:37 AM
آخر رد: strongriseman
  مشكلة فى جمع عمود فى داتا جريد فيو احمد خطاب 3 160 06-03-24, 07:49 PM
آخر رد: احمد خطاب
Photo [VB.NET] مشكلة في شكل الفورم abuyazan 5 302 27-02-24, 09:38 PM
آخر رد: aljzazy
  [VB.NET] مشكلة فى رفع الفاتورة asdfar1977 5 175 25-02-24, 02:04 PM
آخر رد: asdfar1977

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


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