ورود / ثبت نام
0
0

سبد خرید با استفاده از Entity Framework در ASP.NET

455 بازدید
کارت خرید

کارت خرید

این مقاله درباره ی Entity Framework صحبت خواهیم کرد و همچنین توضیح در رابطه با Framework و نحوه ی خرید با استفاده از سبد خرید در ASP.NET را نشان می دهد. علاوه بر کد های کامل مربوط به مثال ، سورس آن نیز برای درک بهترتان در ادامه مطلب قرار داده شده است …
در این مقاله شما یاد می گیرید:

دید کلی و بررسی Entity Framework

وارد کردن تنها ارزش های عددی در یک TextBox

حساب کردن قیمت و تعداد در ردیف سوم

حساب کردن کل مقدار کارت در صورت به روز شدن تعداد

بررسی Entity Framework
The Microsoft ADO.NET Entity Framework یک شی ربطی نقشه برداری (ORM)framework وجود دارد که به برنامه نویس اجازه می دهد با دیتا های مرتبط به عنوان domain خاص کار کنند. از بین بردن اکثر نیازهای دسترسی به دیتا های کد که برنامه نویسان اغلب مجبور هستند آنها را بنویسند.
استفاده از Entity Framework در صورت بروز مشکل استفاده از LINQ و سپس بازیابی و دستکاری دیتا به عنوان شی تایپ شده.
The Entity Framework’s ORM عمل پیاده سازی تامین سرویس مثل تغییر ردیابی، شناسایی وضوح، بارگزاری کند و ترجمه نا مفهوم را انجام می دهد ک برنامه نویسان می توانند بر روی اپلیکشین های خاص کاری تمرکز کنند تا اصول دسترسی دیتا.

سبد خرید

قدم اول: یک جدول با استفاده از این روش ذخیره شده در دیتابیس خود بسازید.

ایجاد جدول ProductDetails

CREATE TABLE [dbo].[ProductDetails] (  
[ProductId] decimal(18,0) IDENTITY(1,1) NOT NULL,  
[ProductName] nvarchar(50) NULL,  
[ProductQty] decimal(18,0) NULL,  
[ProductRate] decimal(18,0) NULL,  
[ProductShippingAddress] nvarchar(max) NULL,  
[CreatedDate] datetime NULL  
);  
GO  

قدم دوم:

GridViewخود را در جزییات در سمت سرویس گیرنده وارد کنید.

برای کلید ویرایش (.aspx code)

<asp:TemplateField>  
      <ItemTemplate>  
         <asp:ImageButton ID="btnEdit" runat="server" CommandName="Edit" CommandArgument='<%# Eval("ProductId") %>'  
                 ImageUrl="~/Image/Edit.jpg" Height="50px" Width="50px" OnCommand="btnEdit_Command"  
                                                      CausesValidation="false" />  
           </ItemTemplate>   
</asp:TemplateField

برای کلید حذف (.aspx code)

<asp:TemplateField>  
        <ItemTemplate>  
               <asp:ImageButton ID="btnDelete" runat="server" CommandName="Delete" CommandArgument='<%# Eval("ProductId") %>'  
                        ImageUrl="~/Image/delete.png" Height="50px" Width="50px" OnCommand="btnDelete_Command"  
                                                        CausesValidation="false" />  
          </ItemTemplate>  
</asp:TemplateField>  

برای کمیت های عددی شما می توانید بیان اعتبار سنجی را پیاده سازی کنید.

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="Please Enter Your Product Rate(Only Numeric Value Allow)"  ControlToValidate="Enter Your ID" ForeColor="Red" ValidationExpression="^[0-9]+$" >
 </asp:RegularExpressionValidator>   

قدم سوم: یک مدل دیتا  ADO.NETبسازید.
برای ساخت Entity Framework شما باید یک Entity دیتا مدل بسازید. شما می توانید از Entity Data Model Wizard ویژوال استادیو برای تولید Entity دیتا مدل از دیتابیس اتوماتیک استفاده کنید.
طبق روش زیر را انجام دهید.
در پنجره Solution Explorer روی نام پروژه راست کلیک کرده و Add” -> “New Item.
در گزینه آیتم جدید، Data category را انتخاب کنید.
ADO.NET Entity Data Model template را انتخاب کنید. برای Entity Data Model خود اسم انتخاب کنید “YourDatebase.edmx”. سپس گزینهlaunches the Data Model WizardAdd button را انتخاب کنید.
در مرحله انتخاب مدل فهرست Generate from a database option را انتخاب کنید و روی Next button کلیک کنید.
در مرحله انتخاب ارتباط مدل خود، YourDatebase.edmx را انتخاب کنید، وارد تنظیمات ارتباط اشخاص شوید و اسم آن را YourDatebaseEntities بگذارید و روی Next button کلیک کنید.
در مرحله انتخاب شی دیتابیس خود جدول دیتابیس تان را انتخاب کرده و دکمه پایان رو بزنید.

فایل web.config را تغییر دهید

<add name="ProductProjectEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string="data source=yoursource;initial catalog=ProductProject;persist security info=True;user id=aa;password=aaa;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />

قدم چهارم:GridView خود را Bind کنید.

 //Generate Public Entities  
   
readonly  ProductProjectEntities _ent = new ProductProjectEntities();  
  
    //GridView Binding  
        public void BindProductGridview()  
        {  
            try  
            {  
                var _pd = from p in _ent.ProductDetails  
                          select p;  
                if (_pd.Count() > 0)  
                {  
                    GvProduct.DataSource = _pd.ToList();  
                    GvProduct.DataBind();  
                }  
            }  
            catch (Exception ex)  
            {  
                throw ex;  
            }  
        }  

قدم پنجم: قیمت کل محصول رو با توجه به کیفیت وارد شده حساب کنید.

شما می توانید این کد رو در RowDataBound پیاده سازی کنید یا حتی در Gridview Control.

با استفاده از این اتفاق ما می توانیم به کنترل خاصی دست پیدا کنیم، مثل: Label, TextBox, dropdown, checkbox و کیمیت هارو از کنترل در GridView control بگیریم.

protected void GvProduct_RowDataBound(object sender, GridViewRowEventArgs e)  
        {  
            try  
            {  
                if (e.Row.RowType == DataControlRowType.DataRow)  
                {  
                    decimal _Price = 0;  
                    decimal _Quantity = 0;  
                    decimal _TotalAmmount = 0;  
  
                    _Price = Convert.ToDecimal(DataBinder.Eval(e.Row.DataItem, "ProductRate"));  
                    _Quantity = Convert.ToDecimal(DataBinder.Eval(e.Row.DataItem, "ProductQty"));  
                    _TotalAmmount = _Price * _Quantity;  
  
                    Label _lblAmmount = (Label)e.Row.Cells[0].FindControl("lblAmmount");  
                    _lblAmmount.Text = _TotalAmmount.ToString();  
                    _TotalAmmountLast = decimal.Parse(_TotalAmmountLast.ToString()) + _TotalAmmount;  
                }  
  
                // below code for calculate Grand total in footer template and display also.....   
                if (e.Row.RowType == DataControlRowType.Footer)  
                {  
                    Label _txtTotal = (Label)e.Row.Cells[0].FindControl("lblTotalAmmount");  
                    _txtTotal.Text = _TotalAmmountLast.ToString();  
                }  
            }  
            catch (Exception ex)  
            {  
                throw ex;  
            }  
        } 

قدم ششم: این آخرین قدم برنامه ماست.

کارت خرید

امیدوارم مفید بوده باشد!
موفق باشید!

آیا این مطلب را می پسندید؟
https://www.mspsoft.com/?p=15701
اشتراک گذاری:
واتساپتوییترفیسبوکپینترستلینکدین
داریوش فرخی
داریوش فرخی هستم از سال 92 شروع به یادگیری برنامه نویسی و از سال 93 در بخش برنامه نویسی و تولید محتوای سایت mspsoft.com مشغول هستم. فعالیتم نیز بیشتر در زمینه های برنامه نویسی با سی شارپ و asp.net بوده است. اوقات فراغتم را هم غالبا با تماشای فیلم یا بازی های کامپیوتری پر میکنم .
مطالب بیشتر
برچسب ها:

نظرات

1 نظر در مورد سبد خرید با استفاده از Entity Framework در ASP.NET

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  1. سلام،
    استفاده از تایپ decimal در جدول فوق اشتباه می باشد و باعث کاهش کارایی دیتابیس خواهد شد.
    باید از تایپ int, bigint بر حسب نیاز استفاده کرد.

    با احترام

    لایک