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

اكسس مع دوت نت 2005 ارجو المساعدة

بدأه flodi في 20 ديسمبر 2008 · 0 رد · 367 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1

السلام عليكم

اعمل على برنامج بستخدام vb.net 2005 وقاعدة بيانات اكسس

يبداء البرنامج بفورم تسجيل الدخول login form باستخدام فضاء الاسماء system.data.oledb وقمت بعمل اجراءات مخزنة storedprocedure للحفظ والتعديل والحذف

المشكلة في كود الموافقة على تسجيل الدخول للمستخدم المضاف اصلاً بقاعدة البيانات واليكم الكود:

Imports System
Imports System.Data
Imports System.Data.OleDb
Public Class LoginForm1
	Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
		If Trim(UsernameTextBox.Text) = "" Then
			ErrorProvider1.SetError(UsernameTextBox, "الرجاء ادخال اسم للمستخدم")
		Else
			ErrorProvider1.SetError(UsernameTextBox, "")
		End If
		If Trim(PasswordTextBox.Text) = "" Then
			ErrorProvider1.SetError(PasswordTextBox, "الرجاء ادخال كلمة المرور")
		Else
			ErrorProvider1.SetError(PasswordTextBox, "")
		End If
		Dim str As String
		Dim oledbCommand2 As New OleDbCommand
		str = "login_sp"
		With oledbCommand2
			.CommandType = CommandType.StoredProcedure
			.CommandText = str
			.Parameters.AddWithValue("@em_user_name", UsernameTextBox.Text)
			.Parameters.AddWithValue("@em_password", PasswordTextBox.Text)
			.Connection = OleDbConnection1
		End With
		OleDbConnection1.Open()
		Dim valid As Integer = oledbCommand2.ExecuteScalar
		If valid < 1 Then
			'invalid login
			MsgBox("كلمة المرور خطاء", MsgBoxStyle.OkOnly)
			UsernameTextBox.Text = ""
			PasswordTextBox.Text = ""
			UsernameTextBox.Focus()
			OleDbConnection1.Close()
			oledbCommand2.Parameters.Clear()
		Else
			'valid login
			Label1.ForeColor = Color.Red
			OK.Enabled = False
			Cancel.Enabled = False
			UsernameLabel.Enabled = False
			PasswordLabel.Enabled = False
			UsernameTextBox.Enabled = False
			PasswordTextBox.Enabled = False
			MenuStrip1.Enabled = True
			username = UsernameTextBox.Text
			Label3.Text = username
	 oledbCommand2.Parameters.Clear()
 OleDbCommand1.Parameters("@em_user_name").Value = UsernameTextBox.Text
   Dim read As OleDb.OleDbDataReader
			read = OleDbCommand1.ExecuteReader
			If read.Read Then
				Label2.Text = read.Item("em_user_type")
				read.Close()
				OleDbConnection1.Close()
				OleDbCommand1.Parameters.Clear()
			End If
		End If
	End Sub

الخطاء يظهر بالسطر التالي:

OleDbCommand1.Parameters("@em_user_name").Value = UsernameTextBox.Text

ورسالة الخطاء هيه:

index out of range exception was unhandled

An OleDbParameter with ParameterName '@em_user_name' is not contained by this OleDbParameterCollection.

والـ كوماند تكست oledbcommand1.text=SELECT em_user_type

FROM ghost_user

WHERE (em_user_name = '@em_user_name')

ماهو سبب ظهور هذا الخطا رغم انه لا يعطيني اي خطاء في صفحة كتابة الكود؟

والكود نفسه عمل بشكل ممتاز عندما قمت بربطه بقاعدة بيانات sqlexpress ولم يظهر اي خطاء!!!؟؟؟؟

اتمنى ايجاد الحل منكم بشكل سريع وشكراَ جزيلاَ

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