السلام عليكم
قمت باجراء هذا الكود وذلك من اجل معرفة نوع المستخدم Admin او User بعد التاكد من اسم المستخدم وكلمة المرور
Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
Dim str As String
Dim SqlCommand2 As New SqlCommand
str = "LoginSP1"
With SqlCommand2
.CommandType = CommandType.StoredProcedure
.CommandText = str
.Parameters.AddWithValue("@tech_user_name", UsernameTextBox.Text)
.Parameters.AddWithValue("@tech_password", PasswordTextBox.Text)
.Connection = SqlConnection1
End With
SqlConnection1.Open()
Dim valid As Integer = SqlCommand2.ExecuteScalar
If valid < 1 Then
'invalid login
MsgBox("كلمة المرور او اسم المستخدم خطاء", MsgBoxStyle.OkOnly)
UsernameTextBox.Text = ""
PasswordTextBox.Text = ""
UsernameTextBox.Focus()
SqlConnection1.Close()
SqlCommand2.Parameters.Clear()
Else
'valid login
OK.Enabled = False
Cancel.Enabled = False
UsernameLabel.Enabled = False
PasswordLabel.Enabled = False
MenuStrip1.Enabled = True
PasswordTextBox.Enabled = False
username = UsernameTextBox.Text
Label1.Text = username
SqlCommand2.Parameters.Clear()
SqlCommand1.Parameters("tech_user_name").Value = UsernameTextBox.Text
Dim read As SqlClient.SqlDataReader
read = SqlCommand1.ExecuteReader
If read.Read Then
TextBox1.Text = read.Item("user_type")
read.Close()
SqlConnection1.Close()
SqlCommand1.Parameters.Clear()
End If
End If
End Subمع العلم بان الاجراء المستدعى هو التالي
ALTER PROCEDURE dbo.LoginSP1 @tech_user_name nvarchar (50) , @tech_password nvarchar (50) AS select count(tech_user_name) from client where tech_user_name=@tech_user_name and tech_password=@tech_password RETURN
ارجو المساعدة من اصحاب الخبره وشكراً
عند تنفيذ البرنامج يحدث الخطاء التالي
An SqlParameter with ParameterName 'tech_user_name' is not contained by this SqlParameterCollection.