ایجاد صفحه Login با استفاده از پایگاه داده SQLite در Xamarin

یکشنبه 9 آبان 1395

در این مقاله ، نحوه ساخت یک صفحه Login (ورود به سایت) با استفاده از تکنولوژی Xamarin را بیان خواهیم کرد. همچنین در یک برنامه ساده، پیاده سازی این بخش آورده شده است.

ایجاد صفحه Login با استفاده از پایگاه داده SQLite در Xamarin

SQLite چیست؟

پایگاه داده SQLite متدهایی برای ایجاد، حذف و اجرای دستورات SQL  دارد و همچنین دستورات رایج دیگری که مربوط به پایگاه داده ها هستند را نیز در خود جای داده است.

بیایید ساخت برنامه را شروع کنیم.

مرحله 1 :

از مسیر Visual Studio->New Project->Templates->Visual C#->Android->Blank App یک پروژه جدید ایجاد کنید.

یک نام برای پروژه انتخاب کرده و مکان ذخیره سازی آن را نیز انتخاب کنید.

مرحله 2 :

سپس به مسیر Solution Explorer-> Project Name-> Resouces->layout بروید، کلیک راست کنیدو در پنجره جدیدی که باز می شود، Android layout را انتخاب کنید. نام آن را NewUser بگذارید و دکمه Add  را بزنید.

مرحله 3 :

به مسیرSolution Explorer-> Project Name بروید و با کلیک راست، یک Activity به پروژه اضافه کنید و نام آن را RegisterActivity بگذارید.

مرحله 4 :

در این مرحله نیاز داریم یک جدول پایگاه داده ایجاد کنیم. بنابراین یک Data Layer Class ایجاد می کنیم. برای این کار بر روی نام پروژه کلیک راست کنید و یک کلاس به نام LoginTable اضافه کنید.

مرحله 5 :

به مسیر Solution Explorer-> Project Name-> References بروید، بر روی Manage Nuget Packages کلیک راست کرده و در پنجره ای که ظاهر می شود، گزینه ی SQLite-Net Packages را انتخاب کنید و پایگاه داده برنامه را نصب کنید.

مرحله 6 :

 سپس به مسیر Solution Explorer-> Project Name->Resources->Layout->Main.axml بروید و طرح زیر را در صفحه پیاده سازی کنید.

مرحله 7 :

برای انجام گام بعدی به فایل Newuser.axml بروید و طرح زیر را در آن پیاده سازی کنید.

مرحله 8 :

سپس به مسیر Solution Explorer-> Project Name->LoginTable.cs بروید و ستون های جدول را مطابق زیر ایجاد کنید.

[PrimaryKey, AutoIncrement, Column("_Id")]  
  
public int id { get; set; } // AutoIncrement and set primarykey  
  
[MaxLength(25)]  
  
public string username { get; set; }  
  
[MaxLength(15)]  
  
public string password { get; set; }

 مرحله 9 :

به مسیر Solution Explorer-> Project Name->MainActivity.cs بروید و فضای نام های زیر را در آن اضافه کنید. ابتدا، باید پایگاه داده را ایجاد کنیم. برای این کار بعد از متد OnCreate() یک متد دیگر به نام CreateDB() ایجاد می کنیم.

    public class MainActivity: Activity  
    {  
        EditText txtusername;  
        EditText txtPassword;  
        Button btncreate;  
        Button btnsign;  
        protected override void OnCreate(Bundle bundle)  
        {  
            base.OnCreate(bundle);  
            // Set our view from the "main" layout resource  
            SetContentView(Resource.Layout.Main);  
            // Get our button from the layout resource,  
            // and attach an event to it  
            btnsign = FindViewById < Button > (Resource.Id.btnlogin);  
            btncreate = FindViewById < Button > (Resource.Id.btnregister);  
            txtusername = FindViewById < EditText > (Resource.Id.txtusername);  
            txtPassword = FindViewById < EditText > (Resource.Id.txtpwd);  
            btnsign.Click += Btnsign_Click;  
            btncreate.Click += Btncreate_Click;  
            CreateDB();  
        }  
        private void Btncreate_Click(object sender, EventArgs e)  
        {  
            StartActivity(typeof(RegisterActivity));  
        }  
        private void Btnsign_Click(object sender, EventArgs e)  
        {  
            try  
            {  
                string dpPath = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "user.db3"); //Call Database  
                var db = new SQLiteConnection(dpPath);  
                var data = db.Table < LoginTable > (); //Call Table  
                var data1 = data.Where(x => x.username == txtusername.Text && x.password == txtPassword.Text).FirstOrDefault(); //Linq Query  
                if (data1 != null)  
                {  
                    Toast.MakeText(this, "Login Success", ToastLength.Short).Show();  
                }  
                else  
                {  
                    Toast.MakeText(this, "Username or Password invalid", ToastLength.Short).Show();  
                }  
            }  
            catch (Exception ex)  
            {  
                Toast.MakeText(this, ex.ToString(), ToastLength.Short).Show();  
            }  
        }  
        public string CreateDB()  
        {  
            var output = "";  
            output += "Creating Databse if it doesnt exists";  
            string dpPath = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "user.db3"); //Create New Database  
            var db = new SQLiteConnection(dpPath);  
            output += "\n Database Created....";  
            return output;  
        }  
    }  

در اینجا، نام پایگاه داده، “user.db3” است.

مرحله 10

سپس به مسیر Solution Explorer-> Project Name-> RegisterActivity.cs بروید ، فضای نام های زیر را اضافه کنید و کدهای زیر را در آن اضافه کنید.

public class RegisterActivity: Activity   
{  
    EditText txtusername;  
    EditText txtPassword;  
    Button btncreate;  
    protected override void OnCreate(Bundle savedInstanceState)  
    {  
        base.OnCreate(savedInstanceState);  
        SetContentView(Resource.Layout.Newuser);  
        // Create your application here  
        btncreate = FindViewById < Button > (Resource.Id.btn_reg_create);  
        txtusername = FindViewById < EditText > (Resource.Id.txt_reg_username);  
        txtPassword = FindViewById < EditText > (Resource.Id.txt_reg_password);  
        btncreate.Click += Btncreate_Click;  
    }  
    private void Btncreate_Click(object sender, EventArgs e)   
    {  
        try   
        {  
            string dpPath = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "user.db3");  
            var db = new SQLiteConnection(dpPath);  
            db.CreateTable < LoginTable > ();  
            LoginTable tbl = new LoginTable();  
            tbl.username = txtusername.Text;  
            tbl.password = txtPassword.Text;  
            db.Insert(tbl);  
            Toast.MakeText(this, "Record Added Successfully...,", ToastLength.Short).Show();  
        } catch (Exception ex) {  
            Toast.MakeText(this, ex.ToString(), ToastLength.Short).Show();  
        }  
    }  
}

مرحله 11 :

دکمه F5  را بزنید تا برنامه اجرا شود و بتوانید خروجی آن را ببنید.

دوره های آموزشی زامارین 

دوره برنامه نویسی اندروید با سی شارپ ( Xamarin )

آموزش متریال دیزاین در زامارین

آموزش Xamarin Forms

دوره Xamarin Form پیشرفته

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید