منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[VB.NET] ظهور رساله في نافذة immediate windows - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [VB.NET] ظهور رساله في نافذة immediate windows (/showthread.php?tid=2126)

الصفحات: 1 2


ظهور رساله في نافذة immediate windows - bumb - 04-03-14

السلام عليكم

مشكلتي هي ظهور رساله في نافذة 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]

مع الشكر لكم جميعاً


RE: ظهور رساله في نافذة immediate windows - bumb - 04-03-14

المشروع بواسطة فيجوال بيسك 2010 اكسبرس وقاعدة البيانات بواسطة اكسس 2007


RE: ظهور رساله في نافذة immediate windows - Genius Live - 05-03-14

ما هي بيئة نظام التشغيل لديك 32 أم 64 ؟

RolleyesRolleyesRolleyes


RE: ظهور رساله في نافذة immediate windows - bumb - 05-03-14

Windows 7 32 bit


RE: ظهور رساله في نافذة immediate windows - Genius Live - 05-03-14

(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


RE: ظهور رساله في نافذة immediate windows - bumb - 05-03-14

نفس الرساله تظهر مره ثانيه


RE: ظهور رساله في نافذة immediate windows - ناجي إبراهيم - 05-03-14

السلام عليكم...

لا علاقة لنسخة 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.

نرجو الاستفادة و السلام.


RE: ظهور رساله في نافذة immediate windows - bumb - 05-03-14

نفس المشكله

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


RE: ظهور رساله في نافذة immediate windows - سعود - 05-03-14

اخي الكريم انت وضع امر الخروج من الروتين عند حدوث خطا وهكذا لن تعرف الخطا اصلا
رسالة الخطا بعد حذف امر الخروج
كود :
ExecuteNonQuery requires an open and available Connection. The connection's current state is closed.



RE: ظهور رساله في نافذة immediate windows - سعود - 05-03-14

الكود بعد التصحيح

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