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

نسخة كاملة : مشكلة في اتصال قاعدة البيانات اكسس
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله وبركاته كل عام وانتم بخير 
قمت بتصميم برنامج وربطه بقاعدة بيانات من نوع اكسس
وهناك مشكلة عندما اقوم باضافة بيانات وعمل حفظ في قاعدة البيانات تظهر هذه الرسالة التي في الصورة


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


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


كود :
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


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

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


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

حطيت الكود وكله تمام بس بيجبلي الرسالة دي مع اني التكتست بوكس متوافق مع ترتيب قاعدة البيانات 
الرسالة معناها ان نوع البيانات المدخلة لا يتوافق مع نوع الحقل
كأن يتم مثلا ادخال نص الى حقل رقمي ... او تاريخ ...
راجع نوع الحقل والبيانات المدخلة في التكست بوكس
(22-05-20, 01:41 PM)boudyonline كتب : [ -> ]الرسالة معناها ان نوع البيانات المدخلة لا يتوافق مع نوع الحقل
كأن يتم مثلا ادخال نص الى حقل رقمي ... او تاريخ ...
راجع نوع الحقل والبيانات المدخلة في التكست بوكس

تمام تم حل المشكلة طلع خطاء بسيطللاسف مختش بالي منه 
بس سعات لما بعمل حفظ بتيجي رسالة مكتوب فيها كلمة overflow بس دي بتعت ايه او ايه معناها وشكرا
(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 بس دي بتعت ايه او ايه معناها وشكرا
(22-05-20, 08:01 AM)mazentq كتب : [ -> ]
(21-05-20, 10:21 PM)DR.YASER كتب : [ -> ]السلام عليكم
كما قال الأخ العزيز : boudyonline
الرسالة معناها أن الاتصال بقاعدة البيانات ليس مغلق و أنه مفتوح .. و بالتالى لا يستطيع البرنامج فتح الاتصال و هو مفتوح بالفعل .. لذا وجب عليك استخدام الكود الذى وضعه الأخ   boudyonline  بارك الله فيه .. و الذى يضمن لك اغلاق الاتصال و اعادة فتح الاتصال .. و أى سؤال لا تتردد و نحن كلنا معك

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


السلام عليكم ورحمة الله وبركاته
عيد فطر مبارك اخي الكريم
تظهر هذه الرسالة عند عدم توافق الحقول المطلوبة في الادخال ويبدو ان حقل الـ ID هو من نوع ترقيم تلقائي ولا حاجة لادخال رقم الاي دي في جملة الانسرت
اما رسالة الـ overflow فهي ان احد الحقول نوع بياناته اصغر من القيمة المدخلة وبذلك لايتسع لما هو مدخل
(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 فهي ان احد الحقول نوع بياناته اصغر من القيمة المدخلة وبذلك لايتسع لما هو مدخل
بارك الله فيك اخي ربنا يكرمك الف شكر