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

عندي مشكلة في الكود ارجوا المساعدة

مغلق
بدأه soso3003 في 15 أبريل 2007 · 12 رد · 1,247 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

Protected Sub Button4_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button4.Click

'هنا نقوم بتعريف نص يحتوي على معلومات قاعدة البيانات التي كتبناها في صفحة web.config

Dim connString As String = ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString

'نقوم بالإتصال بالداتا بيس

Using myConnection As New OracleConnection(connString)

'نقوم بإنشاء الـ SQL query في متغير نصي

Const orac As String = "Select * from USERLOGIN where loginid='" + txtName.Text + "' AND loginpwd='" + txtPassword.Text + "'"

'نقوم بتنفيذ أمر الـ query

Dim myCommand As New OracleCommand(orac, myConnection)

'هنا نقوم بإنشاء DataSet

Dim mDataSet As New DataSet

'ثم نقوم بإنشاء DataAdapter لكي يتواصل بين الـ DataSet وقاعدة البيانات

Dim myAdapter As New OracleDataAdapter(myCommand)

myAdapter.Fill(mDataSet)

'هنا نقوم بإضافة دالة من صنعنا وتحتوي على الـ DataSet و اليوزر والباسورد

CheckRows(mDataSet, txtName.Text, txtPassword.Text)

'أغلق الإتصال

myConnection.Close()

End Using

End Sub

----------------------------------------------------------------------------------------------------------------

Private Sub CheckRows(ByVal dataSet As naqabq1, ByVal loginid As String, ByVal loginpwd As String)

Dim table As DataTable

Dim row As DataRow

'هنا نقوم بإنشاء فور لوب بحيث يتأكد من كل حقل في الصف من الجدول

For Each table In dataSet.Tables

For Each row In table.Rows

If row(1) = loginid And row(2) = loginpwd Then

Response.Redirect("sectors.aspx?")

Session("Txt1") = txtName.Text

Else

Label3.Visible = True

End If

Next row

Next table

End Sub

الخطا يظهر في الكلمات الي تحتها خط

علما باني استخدم قاعدة بيانات اوراكل

انا جربت الكود مع sql ماكان في مشاكل

تم تعديل هذه المشاركة بواسطة soso3003 في 15 أبريل 2007 في 13:59

#2

أستخدمي هذه الطريقة لتمرير الباراميتر و بعدين خبريني شو بيصير

Const orac As String = Select * from USERLOGIN where loginid=@txtNameVal AND loginpwd=@txtPwdVal")

// Your connection, adaptor and dataset here then:
 Dim myCommand As New OracleCommand(orac, connectionString)
 Dim myAdapter As New OracleDataAdapter(myCommand)
myAdapter.Fill(mDataSet)


			myCommand.Parameters.Add("@txtNameVal ", txtName.Text)
			myCommand.Parameters.Add("@txtPwdVal ", txtPassword.Text )

هذه الطريقة أفضل بكثير و من إضافات ال ADO.NET

في الكود الخاص بك لم أجد شيئا يخص تنفيذ ال orac

ربما يكون الخطأ عندك في ال Logic الخاص بكتابة الكود

تم تعديل هذه المشاركة بواسطة محمد خليل أبو صلاح في 15 أبريل 2007 في 14:33

You can fly while you can touch the sky

#3

الف شكر ياستاذ محمد على مشاركتك

بس بر ضوا طلع عندي خطا في الكود التالي وقت ادخال البيانات

myAdapter.Fill(mDataSet)

وهذا الخطا

ORA-00936: يوجد تعبير مفقود

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

والثاني خاص باسم المستخدم والثالث بكلمة المرور

وشكرا

#4

إما أو .......

إما أن تقومي بإلصاق الكود كما هو هنا

أو تقومي بإرفاق الكود

و أيضا يجب كتابة رسالة الخطأ كما هي كي تساعد في فهم المشكلة ...

أيضا يمكنك أن تجربي المثال الموجود هنا .. بسيط جدا

http://web.archive.org/web/20051028233519/...tID=4&id=83

لكن لا تنسي أن تقومي بتحويل ال Encoding إلى العربية

You can fly while you can touch the sky

#5

هذا الكود مرفق

وهذه صورة للخطا

http://www.arb-up.com/get-4-2007-f18ctlvb.JPG

	Protected Sub Button4_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button4.Click
		'هنا نقوم بتعريف نص يحتوي على معلومات  قاعدة البيانات التي كتبناها في صفحة web.config
		Dim connString As String = ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString
		''نقوم بالإتصال بالداتا بيس
		Using myConnection As New OracleConnection(connString)
			'نقوم بإنشاء الـ SQL query في متغير نصي
			Const orac As String = "Select * from USERLOGIN where loginid=@txtNameVal AND loginpwd=@txtPwdVal"

			'نقوم بتنفيذ أمر الـ query
			Dim myCommand As New OracleCommand(orac, myConnection)

			'هنا نقوم بإنشاء DataSet
			Dim mDataSet As New DataSet


			'ثم نقوم بإنشاء DataAdapter لكي يتواصل بين الـ DataSet وقاعدة البيانات
			Dim myAdapter As New OracleDataAdapter(myCommand)
			myAdapter.Fill(mDataSet)

			myCommand.Parameters.Add("@txtNameVal ", txtName.Text)
			myCommand.Parameters.Add("@txtPwdVal ", txtPassword.Text)

			'هنا نقوم بإضافة دالة من صنعنا وتحتوي على الـ DataSet و اليوزر والباسورد
			CheckRows(mDataSet, txtName.Text, txtPassword.Text)

			'أغلق الإتصال
			myConnection.Close()
		End Using



	End Sub

	Private Sub CheckRows(ByVal dataSet As naqabq1, ByVal loginid As String, ByVal loginpwd As String)
		Dim table As DataTable
		Dim row As DataRow

		'هنا نقوم بإنشاء فور لوب بحيث يتأكد من كل حقل في الصف من الجدول
		For Each table In dataSet.Tables
			For Each row In table.Rows

				If row(1) = loginid And row(2) = loginpwd Then
					Response.Redirect("sectors.aspx?")
					'Session("Txt1") = txtName.Text
				Else


					Label3.Visible = True
				End If
			Next row
		Next table
	End Sub

وشكر

#6

ممممممممممم قبل كل شيء .. أعتقد من أجل عملية فقط التحقق من ال UserName and Password أن تستخدمي ال DataReader ولا حاجة لعمل DataSet

أسهل و أسرع و أبسط

من ناحية منطقية ..

كان من الأفضل أن تقومي بجعل الاتصال و تدقيق البيانات داخل الدالة التي تعيد قيمة bool كالتالي:

قمت بعمل مثال بسيط سيفيدك

 Private Function IsValidUser(ByVal userTxt As String, ByVal passTxt As String) As Boolean
		' Here you can add your connction, command, data reader and check value
	End Function


	Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
		If Not IsPostBack Then
			If Not IsValidUser(userTxtBox.Text, passTxtBox.Text) Then
				Response.Redirect("./")
			Else
				Session("IsLogged") = True
				Response.Redirect("./SomeWhereArround.aspx")
			End If
	End Sub

بالتوفيق

You can fly while you can touch the sky

#7

الف شكر ياستاذ محمد صلاح تعبتك معايا

بس عندي طلب (بايخ شوية) ممكن تكتبلي

الكود داخل الفنكسن لوسمحت

علما انو قاعدة البيانات عندي اوراكل

اسم الجدول userlogin

اسم عامود المستخدم loginid

اسم عامود الباسورد loginpwd

ورة ثانية شكرااااااااااااااااا :)

#8

قدر الإمكان حاولت كتاب المثال لك لأنه ليس لدي مزود للأوراكل على جهازي

 Private Function IsValidUser(ByVal userTxt As String, ByVal passTxt As String) As Boolean
		'هنا نقوم بتعريف نص يحتوي على معلومات  قاعدة البيانات التي كتبناها في صفحة web.config
		Dim connString As String = ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString
		''نقوم بالإتصال بالداتا بيس
		Using myConnection As New OracleConnection(connString)
			'نقوم بإنشاء الـ SQL query في متغير نصي
			Const orac As String = "Select * from USERLOGIN where loginid=@txtNameVal AND loginpwd=@txtPwdVal"

			'نقوم بتنفيذ أمر الـ query
			Dim myCommand As New OracleCommand(orac, myConnection)




			' ----------------- 
			Dim myReader As New OracleDataReader



			myCommand.Parameters.Add("@txtNameVal ", txtName.Text)
			myCommand.Parameters.Add("@txtPwdVal ", txtPassword.Text)

			myReader.ExecuteReader()

			If myReader.Read() Then
				Return True
			Else
				Return False
			End If


			myReader.Close()

			'أغلق الإتصال
			myConnection.Close()
		End Using
End Function

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

تم تعديل هذه المشاركة بواسطة محمد خليل أبو صلاح في 17 أبريل 2007 في 09:44

You can fly while you can touch the sky

#9

مشكور استاذ محمد

بس في خطا صغير وهو في الكلمة اللي تحتها خط

Dim myReader As New OracleDataReader

وهذا الخطا

Error

Type 'System.Data.OracleClient.OracleDataReader' has no constructors

وشكرا جزيلا :rolleyes:

#10

عفوا إحذفي كلمة New من التعريف و بس

You can fly while you can touch the sky

#11

معليش استاذ محمدانا عارفه اني طفشتك معايا

بس معليش اتحملني

ظهر خطا اخر في

myReader.ExecuteReader()

الخطا

Error

'ExecuteReader' is not a member of 'System.Data.OracleClient.OracleDataReader'.

وشكرا على سعة صدرك

#12

ما بقدر للأسف اجربلك الكود لاني لا أملك مزود الاوراكل ....!!

ربما أحد الاعضاء يستطيع مساعدتك .. من له تجربة مع الاوراكل

You can fly while you can touch the sky

#13

الف شكر على مجهودك

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…