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

insertداخل Access database

مغلق
بدأه NewLife2007 في 31 ديسمبر 2004 · 6 رد · 1,043 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مرحبا

عندي كم سؤال عارفة يمكن طوال بس انا والله حاولت فيهم كتير ماعرفتش حلهم جربت معاهم اكتر من طريئة بس مازبطت يمكن الائي عندكم الحل والمساعدة وئتها حكون شاكرة كتيييييييييييييير

registration انا بعمل منتدى وفيه صفحة

1- التي من خلالها يتم للمستخدم تسجيل بيانات معينة حتى يتم تسجيله في المنتدى وفي الكود الخاص بbuttonالذي فيه كود التخزين كتبت كود يفحص ازا ماكان اسم المستخدم موجود او غير موجود في قاعدة البيانات التي كان فيها اسم المستخدم هو الPK حيث كان الكود قبل عملية التخزين هذا هو الكود ////er11هي

عبارةlabel مكتوب فيه رسالة خطأ توضح ان الاسم مستخدم من قبل مستخدم اخر

**********************************************************************

dim sql1 As String

cn=New OleDbConnection(prov)

sql1="Select * from userdata"

Dim cmd1 As New OleDbCommand(sql1,cn)

cmd1.Parameters.add("user",txtuser.Text)

Dim reader1 As New OleDbDataReader

reader1=cmd1.ExecuteReader()

cn.Open()

if(reader1.Read())then

if(txtuser.Text="user") then

er11.Visible="True"

else

er11.Visible="false"

end if

end if

cn.Close()

reader1.Close()ولكن ظهرت رسالة الخطأ هذه

Server Error in '/' Application.

________________________________________

[Compilation Error

Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

Compiler Error Message: BC30390: 'System.Data.OleDb.OleDbDataReader.Private Overloads Sub New(connection As System.Data.OleDb.OleDbConnection, command As System.Data.OleDb.OleDbCommand, depth As Integer, chapter As System.IntPtr)' is not accessible in this context because it is 'Private'.

Source Error:

Line 227: Dim cmd1 As New OleDbCommand(sql1,cn)

Line 228: cmd1.Parameters.add("user",txtuser.Text)

Line 229: Dim reader1 As New OleDbDataReader

Line 230: reader1=cmd1.ExecuteReader()

Line 231: cn.Open()

Source File: D:\Inetpub\wwwroot\mysite\register.aspx Line: 229

فما السبب؟؟؟؟؟؟؟؟؟؟؟؟؟ وهل هذه الطريقة جيدة لفحص والتاكد من عدم تكرار اسم المستخدم او أي متغير اخر؟ازا كان هناك طريقة اخرى ارجو الافادة

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــت

السؤال التاني

فيه حاجة غريبة تحدث معي لمااعمل تخزين بس عنجد غريبة وبتغيظ كمان

لمااخزن واحط اسماء المتغيرات الي في الجدول الخاص ب بيانات المسجلين المشكلة هي::::

انه يخزن كل المتغيرات عادي لكن لمااضيف انو يخزن متغير الباسوورد مايرضى مش عارفة ليش تاكدت من اسماء المتغيرات لكن ابدا مش راضي يعني مااختلف اشي عادي الطريقة هيه هيه بس مش عارفة ليه لمااجي اخزن الباسوورد يعمل هيك

الكود هو:::::::::::::::

sql="Insert into userdata(name,fname,lname,bday,bmonth,byear,sex,sost,country,zipcode,username,password,email) Values(txtname.Text,txtfather.Text,txtfamily.Text,day.SelectedItem.Text,month.SelectedItem.Text,year.SelectedItem.Text,ddsex.SelectedItem.Text,ddsocial.SelectedItem.Text,ddcountry.SelectedItem.Text,txtzip.Text,txtuser.Text,txtpass.Text,txtemail.Text)"

cmd=New OleDbCommand(sql,cninsert)

cmd.Parameters.add("name",txtname.Text)

cmd.Parameters.add("fname",txtfather.Text)

cmd.Parameters.add("lname",txtfamily.Text)

cmd.Parameters.add("bday",day.SelectedItem.Text)

cmd.Parameters.add("bmonth",month.SelectedItem.Text)

cmd.Parameters.add("byear",year.SelectedItem.Text)

cmd.Parameters.add("sex",ddsex.SelectedItem.Text)

cmd.Parameters.add("sost",ddsocial.SelectedItem.Text)

cmd.Parameters.add("country",ddcountry.SelectedItem.Text)

cmd.Parameters.add("zipcode",txtzip.Text)

cmd.Parameters.add("username",txtuser.Text)

cmd.Parameters.add("password",txtpass.Text)

cmd.Parameters.add("email",txtemail.Text)

cninsert.Open()

Dim reader as OleDbDataReader

reader=cmd.ExecuteReader()

reader.Close()

cninsert.Close()يعني اول مااشيل الباسوورد password,txtpass.Text يشتغل صح ويخزن عادي100% بس لمااحطو يعطيني رسالة الخطأ التالية

Syntax error in INSERT INTO statement.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.OleDb.OleDbException: Syntax error in INSERT INTO statement.

Source Error:

Line 257: cninsert.Open()

Line 258: Dim reader as OleDbDataReader

Line 259: reader=cmd.ExecuteReader()

Line 260: reader.Close()

Line 261: cninsert.Close()

Source File: D:\Inetpub\wwwroot\mysite\register.aspx Line: 259

فما المشكلة؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

السؤال التالت

كيف نفحص الطول لل

textbox??????????

////////////////////

وخلاص

اسفة جداااااااااااااا للاطالة واتمنى الائي مساعدة واجابة ياريت

واسفة كمان مرة للاطالة

وتحياتي للجميع

ThAnKs FoR EvErYOne

تم تعديل هذه المشاركة بواسطة newbie في 1 يناير 2005 في 09:24

#2

ناخذها حبة حبة...

السؤال الأول:

الخطأ في السطر

Dim reader1 As New OleDbDataReader

الصح:

Dim reader1 As OleDbDataReader

على العموم هناك طريقة أقصر (و أسرع) للتأكد

Dim cn As New OleDbConnection(prov)
        Dim sql1 As String
        Dim count As Integer

        sql1 = "SELECT COUNT(*) FROM userdata WHERE user = @user"

        Dim cmd1 As New OleDbCommand(sql1, cn)
        cmd.Parameters.add("user", txtuser.Text)

        cn.Open()
        count = CInt(cmd1.ExecuteScalar)
        cn.Close()

        If (count > 0) Then
            er11.Visible = "True"
        Else
            er11.Visible = "false"
        End If

تم تعديل هذه المشاركة بواسطة System Down في 2 يناير 2005 في 15:57

#3

السؤال الثاني:

بصراحة الكود مرة ملخبط و لكن شوفي الكود هذا مفروض يشتغل سلام سلام

        sql = "INSERT INTO userdata(name,fname,lname,bday,bmonth,byear,sex,sost,country,zipcode,username,password,email) Values(@name,@fname,@lname,@bday,@bmonth,@byear,@sex,@sost,@country,@zipcode,@username,@password,@email)"

        cmd = New OleDbCommand(sql, cninsert)
        cmd.Parameters.Add("name", txtname.Text)
        cmd.Parameters.add("fname", txtfather.Text)
        cmd.Parameters.add("lname", txtfamily.Text)
        cmd.Parameters.add("bday", Day.SelectedItem.Text)
        cmd.Parameters.add("bmonth", Month.SelectedItem.Text)
        cmd.Parameters.add("byear", Year.SelectedItem.Text)
        cmd.Parameters.add("sex", ddsex.SelectedItem.Text)
        cmd.Parameters.add("sost", ddsocial.SelectedItem.Text)
        cmd.Parameters.add("country", ddcountry.SelectedItem.Text)
        cmd.Parameters.add("zipcode", txtzip.Text)
        cmd.Parameters.add("username", txtuser.Text)
        cmd.Parameters.add("password", txtpass.Text)
        cmd.Parameters.add("email", txtemail.Text)
        cninsert.Open()
#4

السؤال الثالث:

اذا قصدك طول الكلام المكتوب داخل التكستبوكس:

Textbox1.Text.Length

...يحتوي عليى طول المحتوى

سؤال

هل أنت تستخدمي Visual Studio .NET؟

لأن الخطأ في السؤال الأول مفروض يمنع عملية الـcompilation

#5

شكرا جزيلا اخي على الاجابات

وطريقةالinsert الي كنت مستعملاها زبطت لماغيرت اسم الحقل اللي بالdatabase

password------>passwordlogin

مش عارفة ليه بس هيك صار الحمدلله

واما بالنسبة للnew OleDbDataReader

مش عارفة شواللي خلاني استعمل new فيها مع انو الي يعني فترة استخدم اللغة بس يمكن نسيان

لكن شكرا جزيلا جدااااااااااااااااا

انا عارفة الكود كان ملخبط

بس شكرا انك عرفت تقرؤه

انا استخدم Web matrixوداخلها استخدم الvb

مااستخدم visual studio لانها تقيلة جدا عالجهاز والweb matrix تؤدي نفس الغرض نفس الاشي

شكرا الك جزيل الشكر

Thank You SOOOOOOOO much

#7

عندي تعليق بسيط فقط يخص ال Command Parameters ..

الأخت فرح فلسطين في جملة الإدخال SQL قامت بعمل ادخال للحقول كالتالي :

sql="Insert into userdata(name,fname,lname,bday,bmonth,byear,sex,sost,country,zipcode,username,password,email)  Values (txtname.Text,txtfather.Text,txtfamily.Text,day.SelectedItem.Text,month.SelectedItem.Text,year.SelectedItem.Text,ddsex.SelectedItem.Text,ddsocial.SelectedItem.Text,ddcountry.SelectedItem.Text,txtzip.Text,txtuser.Text,txtpass.Text,txtemail.Text

انتي هنا أضفتي القيم التي استقبليتها مباشرة و بالتالي لا داعي لعمل cmd.Parameters الا في حال التالي :

SQL="Insert into tblName(name,password)Values(@txtName,@txtPass)"
cmd.Parameters.Add("@txtName",name.Text)
cmd.Parameters.Add("@txtPass",pass.Text)

اعتقد انك انتبهي اننا استخدمنا في جملة الاستعلام الاشارة @ و التي تفيد بأننا سوف نقوم بإضافة هذا الباراميتر فيما بعد و ذلك من خلاال الطريقة Add التابعة ل Parameters والتي تتبع للكائن cmd.

ولكن ماذا سيحدث للكود التي كتبته إنتٍ بالسابق حيث أضفتي اكثر من باراميتر؟

طبعا لن يتم استبدال اي شيء لانه سيتم البحث عن متغيرات بجانبها الاشارة @ و هي غير موجودة في الاستعلام و بالتالي ستتعرض لعملية Skip .

حظا موفقا للجميع

You can fly while you can touch the sky

هذا الموضوع مغلق.

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