تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] ظهور رساله في نافذة immediate windows
#1
السلام عليكم

مشكلتي هي ظهور رساله في نافذة immediate windows عندما اقوم بتنفيذ المشروع وهي كالتالي:
A first chance exception of type 'System.Data.OleDb.OleDbException' occurred in System.Data.dll

والكود هو كالتالي:
[
php]Imports System.Data
Imports System.Data.OleDb
Public Class frmAddNew

Private Sub btnSave_Click(sender As System.Object, e As System.EventArgs) Handles btnSave.Click
Try
Dim SavInto As New OleDb.OleDbCommand
'Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\bin\Debug\AppointmentSystem.accdb'
Dim ConStr As String = _
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source =" & _
Application.StartupPath & "\AppointmentSystem.Accdb"
Dim Conn As New OleDbConnection(ConStr)
SavInto.Connection = Conn
SavInto.CommandType = CommandType.Text
SavInto.CommandText = "INSERT INTO tblCustomers(CivilRegNum,Name1,Name2,Name3,Name4)" & _
"values (txtCRN.Text ,txtName1.Text ,txtName2.Text ,txtName3 ,txtName4 ) "
Conn.Open()
SavInto.ExecuteNonQuery()
Conn.Close()
MsgBox("تمت عملية الاضافة والحفظ في قاعدة البيانات بنجاح")
Me.Close()

Catch ex As Exception
Exit Sub
End Try
End Sub
End Class
[/php]

مع الشكر لكم جميعاً
الرد }}}
تم الشكر بواسطة:
#2
المشروع بواسطة فيجوال بيسك 2010 اكسبرس وقاعدة البيانات بواسطة اكسس 2007
الرد }}}
تم الشكر بواسطة:
#3
ما هي بيئة نظام التشغيل لديك 32 أم 64 ؟

RolleyesRolleyesRolleyes
{‏‏ يَرْفَعِ اللَّهُ الَّذِينَ آمَنُوا مِنكُمْ وَالَّذِينَ أُوتُوا الْعِلْمَ دَرَجَاتٍ‏ }

 " Mohamed M. Bedair     -     " Abu Anas
Genius Live , Egypt
الرد }}}
تم الشكر بواسطة:
#4
Windows 7 32 bit
الرد }}}
تم الشكر بواسطة:
#5
(05-03-14, 01:23 AM)bumb كتب : Windows 7 32 bit

اذا الخطأ أنك تستخدم Provider غير مناسب
قم بإستبدال Provider=Microsoft.ACE.OLEDB.12.0 إلي Provider=Microsoft.Jet.Oledb.4.0

RolleyesRolleyesRolleyes
{‏‏ يَرْفَعِ اللَّهُ الَّذِينَ آمَنُوا مِنكُمْ وَالَّذِينَ أُوتُوا الْعِلْمَ دَرَجَاتٍ‏ }

 " Mohamed M. Bedair     -     " Abu Anas
Genius Live , Egypt
الرد }}}
تم الشكر بواسطة:
#6
نفس الرساله تظهر مره ثانيه
الرد }}}
تم الشكر بواسطة:
#7
السلام عليكم...

لا علاقة لنسخة Windows بالأمر لأن الـ Provider يتحدد بنسخة Access و ليس Windows، و طالما أنك تستعمل Access 2007 فإن الـ Provider صحيح.

و لكن الخطأ في عبارة VALUES:

كود :
"values (txtCRN.Text ,txtName1.Text ,txtName2.Text ,txtName3 ,txtName4 ) "

حيث قمت بوضع أسماء مربعات النص ضمن علامات الاقتباس، و بالتالي ستذهب كما هي إلى Access الذي سيحاول تفسيرها على أنها أسماء حقول أو دوال و ينتج خطأ.

عدل عبارة VALUES إلى هذا الشكل:

كود :
"values (" & txtCRN.Text & ", '" & txtName1.Text & "', '" & txtName2.Text & "', '" & txtName3.Text & "', '" & txtName4.Text & "')"

* لاحظ وجود علامات الاقتباس الفردية قبل و بعد كل من txtName1 و txtName2 و txtName3 و txtName4 لأنها تقابل حقولاً نصية.
و إذا كان الحقل CivilRegNum نصياً أيضاً فضع علامات اقتباس فردية أيضاً قبل و بعد txtCRN.Text.

نرجو الاستفادة و السلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
الرد }}}
تم الشكر بواسطة:
#8
نفس المشكله

اليكم المشروع بالمرفقات


الملفات المرفقة
.zip   AppointmenSystem.zip (الحجم : 98.63 ك ب / التحميلات : 99)
الرد }}}
تم الشكر بواسطة:
#9
اخي الكريم انت وضع امر الخروج من الروتين عند حدوث خطا وهكذا لن تعرف الخطا اصلا
رسالة الخطا بعد حذف امر الخروج
كود :
ExecuteNonQuery requires an open and available Connection. The connection's current state is closed.
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة:
#10
الكود بعد التصحيح

كود :
Try
            Dim SavInto As New OleDb.OleDbCommand
            'Microsoft.ACE.OLEDB.12.0
            'Microsoft.Jet.Oledb.4.0
            Dim ConStr As String = _
                "Provider=Microsoft.ACE.OLEDB.12.0;Data Source =" & _
                Application.StartupPath & "\AppointmentSystem.Accdb"
            Dim Conn As New OleDbConnection(ConStr)
            SavInto.Connection = Conn
            SavInto.CommandType = CommandType.Text
            SavInto.CommandText = "INSERT INTO tblCustomers(CivilRegNum,Name1,Name2,Name3,Name4)" & _
            "values (" & txtCRN.Text & ", '" & txtName1.Text & "', '" & txtName2.Text & "', '" & txtName3.Text & "', '" & txtName4.Text & "')"

            If Conn.State = ConnectionState.Closed Then
                Conn.Open()
            End If
            SavInto.ExecuteNonQuery()
            Conn.Close()
            MsgBox("تمت عملية الاضافة والحفظ في قاعدة البيانات بنجاح")
            Me.Close()

        Catch ex As Exception
            MsgBox(Err.Description, MsgBoxStyle.Critical, "")



        End Try

اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
الرد }}}
تم الشكر بواسطة:



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


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