تقييم الموضوع :
  • 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 فهي ان احد الحقول نوع بياناته اصغر من القيمة المدخلة وبذلك لايتسع لما هو مدخل
بارك الله فيك اخي ربنا يكرمك الف شكر
الرد
تم الشكر بواسطة: ابراهيم ايبو


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  اتصال بقاعدة البيانات عمور2016 13 360 منذ 29 دقيقة مضت
آخر رد: DR.YASER
  مشكلة عند كتابة textbox cordava 3 67 07-07-20, 09:39 PM
آخر رد: ابراهيم ايبو
  [سؤال] انشاء تقرير Crystal report يأخذ البيانات من عدة جداول محمد العامر 4 116 07-07-20, 12:28 AM
آخر رد: boudyonline
  مشكلة مؤشر textbox cordava 2 50 05-07-20, 04:48 PM
آخر رد: DR.YASER
  مشكلة في comboBox cordava 1 46 05-07-20, 01:05 PM
آخر رد: ابراهيم ايبو
  مشكلة اريد لها حل ومساعدة العطر الرايق 2 71 04-07-20, 12:48 AM
آخر رد: العطر الرايق
  مشكلة في عدم ظهور الأرقام العربية وفي الكريستال ريبورت بالنسبة لـ spiceal Fileds مث جيولوجي مبتدئ 3 98 03-07-20, 06:12 AM
آخر رد: جيولوجي مبتدئ
  مشكلة في عدم ظهور الأرقام العربية وفي الكريستال ريبورت بالنسبة لـ spiceal Fileds مث جيولوجي مبتدئ 1 72 02-07-20, 12:43 PM
آخر رد: معاند الحظ
  مشكلة ورسالة خطا لم اجد لها حل منذ 5 ايام تحديث essawq 45 1,301 02-07-20, 01:06 AM
آخر رد: kiki
  [نقاش] مشكلة سخيفة تواجهنا أحيانا : منع حذف ملف على الـ C DR.YASER 0 47 30-06-20, 11:58 PM
آخر رد: DR.YASER

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


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