الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Update unable to find TableMapping['Table'] or DataTable 'Table'.

بدأه dr.ahmad kelany في 16 يوليو 2011 · 12 رد · 1,366 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

Private Sub btnAccept_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAccept.Click
formPassword.username = txtUserName.Text
formPassword.password = txtPassword.Text
Dim cb As New OleDb.OleDbCommandBuilder(formPassword.da)

If formPassword.identity(formPassword.MaxRows, formPassword.ds, formPassword.username, formPassword.password, formPassword.itrue) = True Then
If txtNewPassword.Text = txtNewPassword2.Text And txtNewPassword.Text <> "" Then
formPassword.ds.Tables("TblUsrPsswrdPrvlg").Rows(formPassword.itrue).Item("Password") = txtNewPassword.Text.ToString
formPassword.con.Open()


formPassword.da.Update(formPassword.ds)
formPassword.con.Close()

MsgBox("Press Ok To Continue", MsgBoxStyle.OkOnly + MsgBoxStyle.Information, "Done")
Me.Close()


Else
MsgBox("New Password Fields Mismatch Or Contain No Text")

End If
Else
MsgBox("Invalid User Name or Password")



End If
End Sub

هذا الكود استخدمه لتغيير كلمة السر لمستخدم التطبيق

ولكن عندما اضغط على هذا الزر تظهر رسالة خطأ:

Update unable to find TableMapping['Table'] or DataTable 'Table'.

ويعلم على السطر:

formPassword.da.Update(formPassword.ds)

جربت غيرت السطر الى:

formPassword.da.Update(formPassword.ds, "TblUsrPsswrdPrvlg")

فكانت النتيجة:

Syntax error in UPDATE statement.

اللهم ول أمورنا خيارنا و لا تول أمورنا شرارنا

اللهم هيء لهذه الأمة أمر رشد....يعز فيه أهل طاعتك و يهدى فيه أهل معصيتك ويؤمر فيه بالمعروف وينهى فيه عن المنكر

333124women.gif

#2
dr.ahmad kelany كتب:

السلام عليكم ورحمة الله وبركاته

[يسار]Private Sub btnAccept_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAccept.Click
        formPassword.username = txtUserName.Text
        formPassword.password = txtPassword.Text
        Dim cb As New OleDb.OleDbCommandBuilder(formPassword.da)

        If formPassword.identity(formPassword.MaxRows, formPassword.ds, formPassword.username, formPassword.password, formPassword.itrue) = True Then
            If txtNewPassword.Text = txtNewPassword2.Text And txtNewPassword.Text <> "" Then
                formPassword.ds.Tables("TblUsrPsswrdPrvlg").Rows(formPassword.itrue).Item("Password") = txtNewPassword.Text.ToString
                formPassword.con.Open()


                formPassword.da.Update(formPassword.ds)
                formPassword.con.Close()

                MsgBox("Press Ok To Continue", MsgBoxStyle.OkOnly + MsgBoxStyle.Information, "Done")
                Me.Close()


            Else
                MsgBox("New Password Fields Mismatch Or Contain No Text")

            End If
        Else
            MsgBox("Invalid User Name or Password")



        End If
    End Sub[/يسار]

هذا الكود استخدمه لتغيير كلمة السر لمستخدم التطبيق

ولكن عندما اضغط على هذا الزر تظهر رسالة خطأ:

Update unable to find TableMapping['Table'] or DataTable 'Table'.

ويعلم على السطر:

formPassword.da.Update(formPassword.ds)

جربت غيرت السطر الى:

formPassword.da.Update(formPassword.ds, "TblUsrPsswrdPrvlg")

فكانت النتيجة:

Syntax error in UPDATE statement.

أهلاً أخي الكريم،

عندما تقوم بعملية إضافة سجل جديد إلى الجدول المذكور، هل تعمل عملية التحديث بكفاءة؟

تم تعديل هذه المشاركة بواسطة Bashar Rabat في 17 يوليو 2011 في 00:24

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

#3

السلام عليكم ورحمه الله وبركاته

اخي اولا تأكد من صحة أسامي الجداول والحقول في الـ DataSet من ثم جرب الكود التالي للتحديث

da.Update(ds)

.:: Wish to become better and better ::.

#4

أخي الكريم بشار وأخي الكريم vb.helper

جزاكم الله خيرا على اهتمامكم واعتذر عن التاخر في الرد

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

بارك الله فيكما

اللهم ول أمورنا خيارنا و لا تول أمورنا شرارنا

اللهم هيء لهذه الأمة أمر رشد....يعز فيه أهل طاعتك و يهدى فيه أهل معصيتك ويؤمر فيه بالمعروف وينهى فيه عن المنكر

333124women.gif

#5

تاكدت اخي الكريم من اسماء الجداول والحقول

please notice that i do the the update statement in form2 while the variables used in the statement are declared in another form

so i have to use the following statement

formPassword.da.Update(formPassword.ds)

in form 1 i use the following code:

Public Class formPassword
    Public con As New OleDb.OleDbConnection

    Public da As OleDb.OleDbDataAdapter
    Public ds As New DataSet
    Public MaxRows As Integer
    Public dbProvider As String = "provider=Microsoft.ACE.OLEDB.12.0;"
    Public dbSource As String = "data source=D:\my projects\Salary Application\Salary Application\Salary_App_Database.accdb"
    Public SQL As String
    Public username As String
    Public password As String
    Public itrue As Integer



    Public Shared Function identity(ByVal maxrows As Integer, ByVal ds As DataSet, ByVal username As String, ByVal password As String, ByRef itrue As Integer) As Boolean
        maxrows = (ds.Tables("TableUsers").Rows.Count) - 1
        Dim uname(maxrows) As String
        Dim pass(maxrows) As String
        Dim id As Boolean = False
        For i = 0 To maxrows
            uname(i) = ds.Tables("TableUsers").Rows(i).Item("User Name")
            pass(i) = ds.Tables("TableUsers").Rows(i).Item("Password")
            If username = uname(i) And password = pass(i) Then
                id = True
                itrue = i
            End If
        Next
        identity = id
    End Function

    Private Sub btnAccept_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAccept.Click
        username = txtUserName.Text
        password = txtPassword.Text
        If identity(MaxRows, ds, username, password, itrue) = True Then
            MsgBox("Access Granted", MsgBoxStyle.OkOnly + MsgBoxStyle.Information, "Welcome " & username)
            Me.Hide()
            formBase.Show()
        Else
            Dim result As MsgBoxResult

            result = MsgBox("Invalid User Name Or Password", MsgBoxStyle.RetryCancel + MsgBoxStyle.Critical, "Try Again??")
            If result = MsgBoxResult.Retry Then
                txtUserName.Text = "" : txtPassword.Text = ""
                txtUserName.Select()
            Else
                End
            End If
        End If
    End Sub

    Private Sub btnExit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnExit.Click
        End
    End Sub

    Private Sub formPassword_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        con.ConnectionString = dbProvider & dbSource
        con.Open()
        SQL = "select * from TableUsers"
        da = New OleDb.OleDbDataAdapter(SQL, con)
        da.Fill(ds, "TableUsers")
        con.Close()
    End Sub
End Class

تم تعديل هذه المشاركة بواسطة dr.ahmad kelany في 19 يوليو 2011 في 20:08

اللهم ول أمورنا خيارنا و لا تول أمورنا شرارنا

اللهم هيء لهذه الأمة أمر رشد....يعز فيه أهل طاعتك و يهدى فيه أهل معصيتك ويؤمر فيه بالمعروف وينهى فيه عن المنكر

333124women.gif

#6

السلام عليكم ورحمه الله وبركاته

اخي ممكن ترفق المشروع ليتم النظر فيه؟

1

.:: Wish to become better and better ::.

#7

السلام عليكم ورحمة الله وبركاته

يمكنك تحميل المشروع اخي الكريم من هذا الرابط

http://www.mediafire.com/?a049u82ku6as226

اللهم ول أمورنا خيارنا و لا تول أمورنا شرارنا

اللهم هيء لهذه الأمة أمر رشد....يعز فيه أهل طاعتك و يهدى فيه أهل معصيتك ويؤمر فيه بالمعروف وينهى فيه عن المنكر

333124women.gif

#8

السلام عليكم ورحمه الله وبركاته

اخي ممكن ترفق قاعدة البيانات؟

.:: Wish to become better and better ::.

#9

بارك الله فيك اخي الكريم

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

عشان البرنامج يوصلها لازم تضع الفولدر بعد فك الضغط داخل فولدر بعنوان my projectsفي بارتيشن الD

D:\my projects\Salary Application\Salary Application\Salary_App_Database.accdb

اللهم ول أمورنا خيارنا و لا تول أمورنا شرارنا

اللهم هيء لهذه الأمة أمر رشد....يعز فيه أهل طاعتك و يهدى فيه أهل معصيتك ويؤمر فيه بالمعروف وينهى فيه عن المنكر

333124women.gif

#10
dr.ahmad kelany كتب:

بارك الله فيك اخي الكريم

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

عشان البرنامج يوصلها لازم تضع الفولدر بعد فك الضغط داخل فولدر بعنوان my projectsفي بارتيشن الD

D:\my projects\Salary Application\Salary Application\Salary_App_Database.accdb

أهلاً أخي الكريم،

لاأدري إن كان خطأ كتابة اسم الجدول هو الوحيد لكن دعنا نبدأ به (عليّك تجربته لأنه ليس لدي Microsoft Office 2007 على حاسبي ) استبدل التالي:

SQL = "select * from TableUsers"

بــــ:

SQL = "select * from TblUsrPsswrdPrvlg"

جرب وأعلمنا، بالتوفيق.

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

#11

اخي الكريم بشار

في داخل التطبيق قاعدتين للبيانات

واحدة امتداد .mdb

والاخرى

.accdb

كان البرنامج في البداية قائما على الأولى ذات مسمى الجدولTblUsrPsswrdPrvlg

وكان الكود المستخدم هو الذي كتبته حضرتك ثانيا ولكن التطبيق لم يعمل ايضا

ولكنني ظننت ان تعقيد الاسم قد يكون سببا في عدم عمل البرنامج فغيرت الاسم في قاعدة البيانات وايضا غيرته في كود البرنامج الى TableUsers

اظن المشكلة ليست في اسم الجدول والدليل ان الجزء من البرنامج الذي يتحقق من كلمة السر واسم المستخدم معتمدا على قاعدة البيانات يعمل جيدا

المشكلة تحدث عندما احاول تغيير كلمة السر عن طريق البرنامج واحدث قاعدة البيانات بهذا التغير

جزاك الله خيرا كثيرا اخي الكريم على اهتمامك وبارك فيك ولاتحرمنا ثمين نصيحتك

اللهم ول أمورنا خيارنا و لا تول أمورنا شرارنا

اللهم هيء لهذه الأمة أمر رشد....يعز فيه أهل طاعتك و يهدى فيه أهل معصيتك ويؤمر فيه بالمعروف وينهى فيه عن المنكر

333124women.gif

#12

أسف أخي الكريم كما ذكرت سابقاً ليس لدي الـOffice 2007، جربت قاعدة البيانات التابعة للـ2003 ظهر لي نفس الإستثناء رغم أني حاولت التعديل بواسطة العملية ExecuteNonQuery للعنصر OleDbCommand بعد بعض التجارب قمت بتغيير اسم الحقل (User Name) إلى (UserName) و (Password) إلى (UserPassword) وكما أرى الأن أن عملية التعديل تنفذ بنجاح دون أي مشاكل، جرب تغيير اسم الحقول إلى ماذكر ولاتنسى تعديل Code تطبيقك ليلائم أسماء الحقول.

بالتوفيق.

1

The important thing is not so much

that every child should be taught,

as that every child should be given the wish to learn.

#13

السلام عليكم ورحمة الله وبركاته

غيرت اسماء الحقول والتطبيق اشتغل فعلا

بارك الله فيك اخي الكريم بشار

وربنا يخليك لينا يا باشا

ههههههههههه

جزاك الله خيرا

اللهم ول أمورنا خيارنا و لا تول أمورنا شرارنا

اللهم هيء لهذه الأمة أمر رشد....يعز فيه أهل طاعتك و يهدى فيه أهل معصيتك ويؤمر فيه بالمعروف وينهى فيه عن المنكر

333124women.gif

مواضيع مشابهة