NET Programming.
در اکثربرنامه های امروزی از فرمی برای تائید کردن نام کاربرو پسورد کاربر استفاده می کنند به همین جهت در پروژه های VB.Net ( برای پروژه های C# چنین امکانی نیست )چنین فرمی به طور پیش فرض تدارک دیده شده است البته خود شما نیز به راحتی می توانید آنرا بسازید و این امکان فقط برای سرعت بخشیدن به طراحی برنامه است.
برای اضافه کردن ان از مسیر Project/Add Windows Form شی LoginForm را به برنامه اضافه کنید یا خودتان یک فرم با دو کنترل textbox به نامهای UsernameTextBox و PasswordTextBox و دو باتن به نامهای Ok و Cancel به برنامه اضافه کنید.
از اینجا به بعد فرض می کنم که شما برای چک کردن username و password ورودی کاربران یک جدول در اکسس با نام users ایجاد کرده اید که دارای دو فیلد username و password است.
حال می خواهیم برنامه ای بنویسیم که در صورت تائید یا وجود داشتن نام کاربری و پسورد در پایگاه داده ، فرم اصلی برنامه با نام frmmain را نمایش بدهد و فرم login را ببندد.
در ابتدا دو namespace زیر را اضافه کنید:
| C#.NET |
| using System.Data.OleDb;
using System.Threading; |
| VB.NET |
| Imports System.Data.OleDb
Imports System.Threading |
سپس دو متغیر زیر را به صورت سراسری تعریف کنید:
| C#.NET |
| private OleDbConnection con;
private OleDbCommand com; |
| VB.NET |
| Private con As OleDbConnection
Private com As OleDbCommand |
سپس در رویدادLoad فرم Login دستورات زیر را وارد کنید:
| C#.NET |
| con = new OleDbConnection();
con.ConnectionString = "provider=microsoft.ace.oledb.12.0;data source=TEST.accdb"; |
| VB.NET |
| con = New OleDbConnection
con.ConnectionString = "provider=microsoft.ace.oledb.12.0;data source=TEST.accdb" |
توجه کنید فایل اکسس درنظرگرفته شده 2007 و در پوشه Debug قرار دارد. ]
حال در رویداد Click دکمه OK دستورات زیر را بنویسید:
| C#.NET |
| com = new OleDbCommand();
con.Open(); com.Connection = con; com.CommandText = "select count(*) from users where username='" + UsernameTextBox.Text + "' and password='" + PasswordTextBox.Text + "'"; int value; value = (int)com.ExecuteScalar(); if (value == 1) { Thread form = new Thread(new ThreadStart(MainForm)); form.Start(); this.Close(); } else MessageBox.Show("نام کاربری یا رمز ورودی اشتباه است"); con.Close(); |
| VB.NET |
| com = New OleDbCommand
con.Open() com.Connection = con com.CommandText = "select count(*) from users where username='" & UsernameTextBox.Text & "' and password='" & PasswordTextBox.Text & "'" Dim value As Int16 value = com.ExecuteScalar If value = 1 Then Dim form As New Thread(AddressOf MainForm) form.Start() Me.Close() Else MessageBox.Show("نام کاربری یا رمز ورودی اشتباه است") End If con.Close() |
حالا باید تابعی (تابع MainForm) به صورت زیر تعریف کنید:
| C#.NET |
| private void MainForm()
{ frmmain frmm=new frmmain(); Application.Run(frmm); } |
| VB.NET |
| PrivateShared Sub MainForm()
Dim frmm As New frmmain Application.Run(frmm) End Sub |
در رویداد Click دکمه Cancel دستورات زیر را بنویسید:
| C#.NET |
| this.Close(); |
| VB.NET |
| Me.Close() |
این برنامه برای اجرا آماده است.
نکته : باید توجه داشت که برای ذخیره کردن پسورد در پایگاه داده باید آنرا hash کرد که hash کردن پسورد در مقاله ایی جداگانه گفته خواهد شد.