تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] السلام عليكم عندي مشكلة في الكود بتاع شاشة دخول الرجاء المساعدة
#1
PHP كود :
Imports System.Data
Imports System
.Data.OleDb
 
Public Class Form1
    Dim con 
As String "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\work.mdb"
 
   Dim adapt As New OleDbDataAdapter

    Dim dtl 
As New DataTable
    



    Private Sub Form1_Load
(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load

        
''dbase_conn()


 
   End Sub
    Private Sub Button1_Click
(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
        Try
            Dim cn 
As OleDbConnection Nothing
            Dim cm 
As OleDbCommand Nothing
            Dim i 
As Integer 0
            cn 
OleDbConnection(con)
 
           cm OleDbCommand("select count(*) from user_log where userid=@username and password=@pass"cn)
 
           cm.Parameters.Add(New OleDbParameter("username"TextBox1.Text.Trim()))
 
           cm.Parameters.Add(New OleDbParameter("pass"TextBox2.Text.Trim()))
 
           cn.Open()
 
           i cm.ExecuteScalar
            If i 
0 Then
                Dim x 
As New Mainform
                x
.Show()
 
           Else
                MsgBox
("اسم المسخدم او كلمة المرور خطا")


 
           End If
 
       Catch ex As Exception
            MsgBox
(ex.Message)
 
       End Try
 
      
    End Sub

    Private Sub Button2_Click
(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button2.Click
        End



    End Sub

    Private Sub GroupBox1_Enter
(ByVal sender As System.ObjectByVal e As System.EventArgsHandles GroupBox1.Enter

    End Sub

    Private 
Function OleDbConnection(ByVal con As String) As OleDbConnection
        Throw 
New NotImplementedException
    End 
Function

 
   Private Function OleDbCommand(ByVal p1 As StringByVal cn As OleDb.OleDbConnection) As OleDbCommand
        Throw 
New NotImplementedException
    End 
Function

End Class 
الرد }}}
تم الشكر بواسطة:
#2
هذا تعديل للكود
PHP كود :
Imports System.Data.OleDb

Public Class Form1

    Dim cn 
As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\work.mdb")

 
   Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
        Try
            Dim i 
As Integer 0

            Dim cm 
As New OleDbCommand("SELECT COUNT(*) FROM [user_log] WHERE ([userid]=@username) AND (password=@pass)"cn)
 
           cm.Parameters.AddWithValue("@username"TextBox1.Text.Trim)
 
           cm.Parameters.AddWithValue("@pass"TextBox2.Text)

 
           If cn.State <> ConnectionState.Open Then cn.Open()
 
           i cm.ExecuteScalar
            cn
.Close()

 
           If i 0 Then
                Me
.Hide()
 
               Dim x As New Mainform
                x
.Show()

 
           Else
                MsgBox
("اسم المسخدم او كلمة المرور خطا")

 
           End If

 
       Catch ex As Exception
            MsgBox
(ex.Message)
 
           End
        End 
Try
 
   End Sub

    Private Sub Button2_Click
(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button2.Click
        End
    End Sub

End 
Class 
ولاحظ أن كلمة المرور لا يتم عمل Trim لها لأنها قد تكون تحتوي مسافات في بدايتها أو نهايتها قد قصد المستخدم وضعها.

ولكن الأفضل لسطر تكوين الاتصال أن يكون في Module جديد على أن تغير Dim إلى Public مثل
PHP كود :
Public cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\work.mdb"
من أجل أن لا تحتاج اضافته في كل فورم، فقط استدع المتغير cn من أي مكان في المشروع.

والأفضل أن تستخدم هذا السطر لفتح الإتصال، لتفادي خطأ أن يكون الإتصال مفتوح من قبل
PHP كود :
If cn.State <> ConnectionState.Open Then cn.Open() 
الرد }}}
تم الشكر بواسطة: sendbad100 , sendbad100 , aldegef



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم