PDA

View Full Version : سوال: صفحه login



mohammad.heydaree
سه شنبه 22 آذر 1390, 22:49 عصر
با سلام
دوستان بنده صفحه ای رو با زبان ویژیال بیسیک نت 2010 طراحی کرده ام که به یک بانک اطلاعاتی متصل است و حالا میخواهم که کاربرم با ورود رمز عبور و نام کاربری وارد سیستم من شود
از کد زیر استفاده کرده ام که بخش
Read = dbUp.ExecuteReader
خطا میگیرد
کد کامل را میگزارم لطفا بنده ا راهنمایی فرمایید.

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
DbCon.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\mohammad\Desktop\taxi\taxi.mdb"
DbCon.Open()
dbUp.Connection = DbCon
dbUp.CommandType = CommandType.Text
dbUp.CommandText = "Select * from LOGIN where ID=yes and Pass=no "
dbUp.Parameters.Add("ID", Data.OleDb.OleDbType.Variant)
dbUp.Parameters.Add("Pass", Data.OleDb.OleDbType.Variant)
dbUp.Parameters("ID").Value = usertxt.Text
dbUp.Parameters("Pass").Value = passTxt.Text
Read = dbUp.ExecuteReader
With Read
If .Read Then
Me.Hide()
Form2.Show()
Else
usertxt.Clear()
passTxt.Clear()
MessageBox.Show("نام کاربری و رمز عبور وارد شده صحیح نیست")
usertxt.Focus()
End If
End With
End Sub
End Class

meisam3322
سه شنبه 22 آذر 1390, 23:11 عصر
ادرس datasource رو به صورت زیر بنویسید : اگر فایل پایگاه داده در کنار فایل exe برنامه باشه :


Application.Startuppath & "\taxi.mdb"

اگر در پوشه مثلا db قرار داشت:


Application.Startuppath & "\db\taxi.mdb"

اون پارامترها رو پاک کن و به جای اونها چک کن که مثلا اگر datareader فیلد یوزرنیم رو میخونه با textbox ی که کاربر در آن یوزرنیم خود رو وارد کرده برابر باشه، همینطور واسه پسورد : دو تا متغیر از نوع string برای خوندن فیلدهای نام کاربری و کلمه عبور با نام های s1,s2



while read.read
s1=read("نام فیلد نام کاربری")
s2=read("نام فیلد کلمه عبور")
if s1=textbo1.text and s2=textbox2.text then
در اینجا کاربر login میشه و دستورات بعد از login
end if
end while


از دستور select شما هم چیزی نفهمیدم. نمیدونم توی بانک شما چه خبره

mohammad.heydaree
سه شنبه 22 آذر 1390, 23:16 عصر
سلام
دستت درد نکنه دوست عزیزم والا من هم کد رو خودم ننوشتم
اگر کد جمع و جوری برای لاگین سراغ داری لطف کن بزار واسم
توی بانک اطلاعاتیم دوتا فیلد ID و pass گذاشتم فقط

meisam3322
سه شنبه 22 آذر 1390, 23:55 عصر
یه تابع که ورودی مقادیر textbox های نام کاربری و کلمه عبور رو میگیره. مقدار True یا False رو بر میگردونه که اگر True باشه یعنی نام کاربری و کلمه عبور در بانک وجود داره :



Public Function User_Login(ByVal uname As String, Pname As String) As Boolean
Dim H, H1 As String
Dim _R As Boolean
SqlStr = "select * from tblUser'"
Con = New OleDbConnection(ConStr)
Com = New OleDbCommand(SqlStr, Con)
Con.Open()
Reader = Com.ExecuteReader
While Reader.Read
H = Reader("ID").ToString
H1 = Reader("pass").ToString
If H = uname And H1 = Pname Then
_R = True
Reader.Close()
Con.Close()
Return _R
Exit Function
Else
_R = False
End If
End While
Reader.Close()
Con.Close()
Return _R
End Function


البته قبل از این کد باید متغیر sqlstr رو از نوع string تعریف کنی، که دستور sql رو برمیگردونه
reader هم همون datareader هست
constr هم رشته connection string به بانک هست
tblUser نام جدول که خودت با توجه به بانکت عوضش کن
con: oledbconnection
com: oledbcommand

mohammad.heydaree
چهارشنبه 23 آذر 1390, 15:18 عصر
سلام
این کدی که شما دادی رو نتونستم استفاده کنم
خودم یه کد نوشتم
اما خب وقتی که یوز پسورد درست بزنی هم وارد میشه هم پیغام خطا میده و برعکس اگه یوز و پسورد رو اشتباه هم بزنی هم وارد میشه هم خطا میده

PublicClasslogin
Dim pro AsString = "Provider=Microsoft.jet.OLEDB.4.0;"
Dim path AsString = "Data Source=" & Application.StartupPath & "\taxi.mdb;"
Public cn AsNewOleDbConnection(pro & path)
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim cmd AsNewOleDbCommand
cmd = NewOleDbCommand("select * from tb1", cn)
Try
cn.Open()
Dim dr AsOleDbDataReader
Dim user, pass, ut AsString
ut = "کاربر عزیز"
dr = cmd.ExecuteReader
While dr.Read
user = dr("ID")
pass = dr("pass")
If TextBox1.Text = user And TextBox2.Text = pass Then
Form1.Show()
Else
MsgBox("نام کاربری یا رمز عبور واد شده اشتباه است")
EndIf
EndWhile
dr.Close()
cn.Close()
Catch ex AsException
EndTry

EndSub

اگه میشه لطفا یک کد کامل به همراه توضیح واسم بزارید مبتدی هستم !!
ممنون