آموزش ثبت اطلاعات در دیتابیس با سی شارپ به روش Linq وado.net
در جلسه قبلی یاد گرفتید که چگونه می توان یک فرم لاگین ایجاد کرد. در این جلسه قصد دارم تا شما را با ثبت اطلاعات در سی شارپ به روش Linq و ado.net آشنا کنم.
برای شروع کار به یک دیتابیس نیاز داریم
ساخت دیتابیس
یک دیتابیس با نام db_user ایجاد کنید. سپس جدولی را با نام User ایجاد کرده و فیلد های زیر را در آن قرار دهید
نام فیلد | نوع داده | Null |
UserId | int کلید اصلی و Auto Increment | خیر |
Name | nvarchar | خیر |
Family | nvarchar | خیر |
UserName | nvarchar | خیر |
Password | nvarchar | خیر |
ایجاد پروژه
یک پروژه از نوع web application asp.net ایجاد کنید. سپس یک WebForm به پروژه با نام دلخواه اضافه کنید.
ارتباط با دیتابیس
حال می خواهیم با دیتابیس ارتباط برقرار کنیم در منوی بالا مسیر View>Server Explorer را دنبال کنید
پس از انتخاب Server Explorer ، در بخش سمت چپ باکسی بصورت زیر باز خواهد شد که باید روی گزینه Connect To Database کلیک کنید
یک پنجره جدید به شکل زیر به نمایش در می آید. در بخش Server Name حتما localhost را در آن قرار دهید یا یک نقطه . که به منزله localhost می باشد استفاده کنید. و درپایین بخش Select or enter a database name ، نام دیتابیس مورد نظر را انتخاب کنید.
در همین پنجره روی Advanced کلیک کنید تا پنجره زیر ظاهر شود:
بخش زرد رنگی که در تصویر مشخص شده است باید کپی شود آن را کپی کرده و بخاطر داشته باشد موقع کد نویسی به آن نیاز خواهیم داشت. که به عنوان آدرس کانکشن استفاده می شود. حال هردو پنجره را OK کنید
مراحل برنامه نویسی
ثبت اطلاعات به روش ado.net
فرم زیر را بسازید می توانید از کدهای زیر استفاده کنید
<form id="form1" runat="server"> <asp:Label Text="Name:" runat="server" /> <br /> <asp:TextBox runat="server" ID="txtName" /> <br /> <asp:Label Text="Family:" runat="server" /> <br /> <asp:TextBox runat="server" ID="txtFamily" /> <br /> <asp:Label Text="UserName:" runat="server" /> <br /> <asp:TextBox runat="server" ID="txtUsername" /> <br /> <asp:Label Text="Password:" runat="server" /> <br /> <asp:TextBox runat="server" ID="txtPassword" TextMode="Password" /> <br /> <asp:Button Text="Submit" runat="server" ID="btnSubmit" OnClick="btnSubmit_Click" />
سپس در رویداد کلیک باتون کد زیر را قرار دهید
string Conn = "Data Source=localhost;Initial Catalog=db_user;Integrated Security=True";
SqlConnection conn = new SqlConnection(Conn);
conn.Open();
string insertQ = "INSERT INTO [User] (Name,Family,UserName,Password) " +"VALUES('" + txtName.Text + "','" + txtFamily.Text + "','" + txtUsername.Text + "','" + txtPassword.Text + "')";
SqlCommand cmd = new SqlCommand(insertQ,conn);
cmd.ExecuteNonQuery();
conn.Close();
Response.Write("اطلاعات با موفقیت ثبت شد");
اگر کامپایلر به دستور SqlConnection و SqlCommand خطا گرفت کد زیر را در بخش بالا قرار دهید
using System.Data.SqlClient;
حال نوبت به استفاده از روش Linq رسیده که روش بهتر و بهینه تر در حجم کدها می باشد. در این روش ارتباط ما با دیتابیس متفاوت تر از قبل خواهد بود. در اینجا نیاز داریم تا یک Model از دیتابیس خود ایجاد کنیم. برای ارتباط دیتابیس با این روش، ابتدا اینجا کلیک کرده تا بتوانید یک Model ایجاد کنید.
سپس در رخداد کلیک دکمه از کد زیر استفاده کنید:
//ایجاد نمونه از مدل ایجاد شده
Models.db_userEntities db = new Models.db_userEntities();
db.User.Add(new Models.User
{
Name=txtName.Text,
Family=txtFamily.Text,
UserName=txtUsername.Text,
Password=Password.Text
});
//save change data
db.SaveChange();
همانطور ملاحظه می کنید حجم کدها بشدت کاهش یافت. در کد بالا ابتدا یک نمونه از Model ایجاد کردیم. در ادامه با همین مدل جدول User فراخوانی شده است وسپس با متد Add عمل افزودن را انجام دادیم.
آخر سر برای ذخیره اطلاعات از متد SaveChange استفاده شده است. این متد یک مقدار بازگشتی از نوع int بر می گرداند. اگر عملیات موفق آمیز باشد مقدار 1 در غیر اینصورت صفر بر می گرداند.
می توانید پروژه را اجرا کرده و مراحل تست را انجام دهید اگر با خطا مواجه شدید در بخش نظرات می توانید مشکل خود را بیان کنید.
دیدگاهتان را بنویسید