-->

Friday, April 10, 2015

How to retrieve data from two tables in MVC

Introduction

In this article, i want to bind  hyperlink from one database table like department and when we click on any department name then we will get all employee name, which is stored in second database table. In my previous example, we have to learn how to retrieve data from single database table also learn how-to bind hyperlink in mvc. Today, we will take help of both articles and learn how to retrieve data from two tables in mvc. First to prepare department class with some data members also mapped this with department table, this is already mentioned in previous post. Also add employee class in it.

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Web;

namespace WebApplication11.Models
{
[Table("Department")]
public class Department
{
public int Id { get; set; }
public string Name { get; set; }

public List<Employee> Employee { get; set; }
}
}

Create DepartmentContext class for retrieving department data from the database  table. If you are use same context for multiple table, MVC 5  generate error.


using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;

namespace WebApplication11.Models
{
public class DepartmentContext : DbContext
{
public DepartmentContext()
: base("EmployeeConnection")
{ }
public DbSet<Department> Departs { get; set; }
}
}

Here, connection string save in web.config file. Through Departs property i will get all records from the database table. Now, we create a controller class and view for controller class. In which, i will get all the records from department table using List collection and these items render on the browser using View.


public class DepartmentController : Controller
{
//
// GET: /Department/
public ActionResult Index()
{
DepartmentContext context = new DepartmentContext();
List<Department> dept = context.Departs.ToList();
return View(dept);
}
}

Get the list of department using context instance. Render by the view, so check the view, which is prepare for Department


@model IEnumerable<WebApplication11.Models.Department>
@using WebApplication11.Models;
@{
ViewBag.Title = "Index";
}

<h2>Index</h2>
<ul>
@foreach(Department dt in @Model)
{
<li>@Html.ActionLink(dt.Name,"Index1","Employee",new{DepartmentId=dt.Id},null)</li>
}
</ul>

The Action link method contains some parameters, which are name of the department,  calling method, name of the controller where your method exist and last one is parameter which is pass in the method.  Now, prepare the employee class and EmployeeContext in model folder.


namespace WebApplication11.Models
{
[Table("Employee")]
public class Employee
{
public int EmployeeId { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public int DeptId { get; set; }
}
}

How to retrieve data from two tables in MVC


Similarly again, Create a Context for employee class, In which we can retrieve the data from employee table.

namespace WebApplication11.Models
{
public class EmployeeContext:DbContext
{
public EmployeeContext()
: base("EmployeeConnection")
{

}
public DbSet<Employee> Employees { get; set; }

}
}

Now, create a controller and view for employee class. In which we can create a single method that is Index1 and retrieve the employee information whos department id is selected.


public class EmployeeController : Controller
{
//
// GET: /Employee/
public ActionResult Index1()
{
EmployeeContext context = new EmployeeContext();
Employee emp = context.Employees.Single(emp1 => emp1.DeptId == 1);
return View(emp);
}
}

And create the view for employee.

@model WebApplication11.Models.Employee

@{
ViewBag.Title = "Index1";
}

<h2>Index1</h2>
<p>@Model.Name</p>

Code generate the following output

How to retrieve data from two tables in MVC

fix parameters dictionary contains a null entry

Introduction

Basically that's type of error occurs due to null value. But i have already try to pass some value, manually in the controller function. Always i get this error. Ok let's start to story of the error. I want to get the record from single department table and that's name is hyperlinked. Now, When i click to any hyperlink then open respective employee details, which is stored in another table. What i was done. First i was write the code for retrieving the value from single data base table, on that time, my code run successfully. But in Next time when i wrote the code for retrieving the record from two database table, on that time, i got the error.

What steps i have taken

  1. First step to prepare classes for employee and department
  2. Second step to create a context for both class
  3. third step to prepare a controller for department, as well as prepare view for department
  4. forth step to prepare controller for employee, as well as prepare view for employee.

Error

The parameters dictionary contains a null entry for parameter 'deptid' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult linkEmp(Int32)' in 'WebApplication10.Controllers.EmployeeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters.

SnapShot


How to fix it

Prepare the seperate Context class for each model. I have two class that is employee and department , If you want to retrieve data from both class then you want to make two seperate context for each. I have two context that is 1. EmployeeContext 2. DepartmentContext

Thursday, April 9, 2015

Access data from database table in MVC

In MVC, we can access data from database easily. When we send any request to the server, respond generated by the controller. Data access from the Model and render by the View. First to make a database table using visual studio 2010 or higher. we have database table that is "Employee", in which have some attributes, these are

CREATE TABLE [dbo].[Employee]
(
[Id] INT NOT NULL PRIMARY KEY IDENTITY,
[Name] NVARCHAR(50) NULL,
[Age] INT NULL
)


  1. First to install entity framework by the "Nuget packages", which is available in tools-->Library Package Manager
  2. This is already available in 4.5 framework or 4.5.1.
ntity framework by the "Nuget packages
  1. Now, add the employee class in model folder with some public properties  like
  2.  
     namespace WebApplication10.Models
    {
    public class Employee
    {
    public int ID { get; set; }
    public string Name { get; set; }
    public int age { get; set; }
    }
    }
    
    
  3. Now, add another class which is EmployeeContext.cs class, which is inherit from DBContext class. DBContext class is available in System.Data.Entity namespace. This class is used for making connection. Now, your code look like
  4.  
    using System.Data.Entity;namespace WebApplication10.Models
    {
    public class EmployeeContext: DbContext
    {
    public DbSet<Employee> empl { get; set; }}
    }
    
    Here, empl is the public property, by which we can create the connection to the database.
  5. Now, add the ConnectionString in the web.config file that is
    <add name="EmployeeConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\Database1.mdf;Initial Catalog=Database1;Integrated Security=True"
    providerName="System.Data.SqlClient" />
    
    
  6. Map the database table with the Employee class using Table class which is available in  System.ComponentModel.DataAnnotations.Schema; namespace, after mapping now your code look like
    using System.ComponentModel.DataAnnotations.Schema;namespace WebApplication10.Models
    {[Table("Employee")]
    public class Employee
    {
    public int ID { get; set; }
    public string Name { get; set; }
    public int age { get; set; }
    }
    }
    
  7. Now, create a EmployeeController  in controller folder, Which is inherit from Controller class. This Controller class is exists in System.Web.Mvc namespace. Also create a public method, which return ActionResult class. Now your code look like
     using System.Linq;
    using System.Web.Mvc;
    using WebApplication10.Models;
    
    namespace WebApplication10.Controllers
    {
    public class EmployeeController : Controller
    {
    //
    // GET: /Employee/
    public ActionResult Index()
    {
    EmployeeContext context = new EmployeeContext();
    Employee emp = context.pl.Single();
    
    return View(emp);
    }
    }
    }
    
    Here we create a instance of EmployeeContext class and invoke the public property of that class.
  8. Now create the view for this program. Before adding the view with their presentation must build the project. Learn How to create the new view
 create the view for this program

  1. Prepare the view and access all the properties of the employee class by the @Model properties.
     @model WebApplication10.Models.Employee
    
    @{
    ViewBag.Title = "Employee Details";
    }
    
    <h2>Employee Details are:</h2>
    Employee Id : <p>@Model.ID</p>
    Employee Name : <p>@Model.Name</p>
    Employee Age : <p>@Model.age</p>
    
    
  2. Now run the code and check your desired output
Access data from database table in MVC

Data Binding in MVC

In MVC, we can access data from database easily. When we send any request to the server, respond generated by the controller. Data access from the Model and render by the View. First to make a database table using visual studio 2010 or higher. we have database table that is "Employee", in which have some attributes, these are
CREATE TABLE [dbo].[Employee]
(
[Id] INT NOT NULL PRIMARY KEY IDENTITY,
[Name] NVARCHAR(50) NULL,
[Age] INT NULL
)
  1. First to install entity framework by the "Nuget packages", which is available in tools-->Library Package Manager
  2. This is already available in 4.5 framework or 4.5.1.
  3. Install Entity Framework By the nuget packages
  4. Now, add the employee class in model folder with some public properties  like
     namespace WebApplication10.Models
    {
    public class Employee
    {
    public int ID { get; set; }
    public string Name { get; set; }
    public int age { get; set; }
    }
    }
    
    
  5. Now, add another class which is EmployeeContext.cs class, which is inherit from DBContext class. DBContext class is available in System.Data.Entity namespace. This class is used for making connection. Now, your code look like
    using System.Data.Entity;namespace WebApplication10.Models
    {
    public class EmployeeContext: DbContext
    {
    public DbSet<Employee> empl { get; set; }}
    }
    
    Here, empl is the public property, by which we can create the connection to the database.
  6. Now, add the ConnectionString in the web.config file that is
    <add name="EmployeeConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\Database1.mdf;Initial Catalog=Database1;Integrated Security=True"
    providerName="System.Data.SqlClient" />
    
    
  7. Map the database table with the Employee class using Table class which is available in  System.ComponentModel.DataAnnotations.Schema; namespace, after mapping now your code look like
    using System.ComponentModel.DataAnnotations.Schema;namespace WebApplication10.Models
    {[Table("Employee")]
    public class Employee
    {
    public int ID { get; set; }
    public string Name { get; set; }
    public int age { get; set; }
    }
    }
    
  8. Now, create a EmployeeController  in controller folder, Which is inherit from Controller class. This Controller class is exists in System.Web.Mvc namespace. Also create a public method, which return ActionResult class. Now your code look like
     using System.Linq;
    using System.Web.Mvc;
    using WebApplication10.Models;
    
    namespace WebApplication10.Controllers
    {
    public class EmployeeController : Controller
    {
    //
    // GET: /Employee/
    public ActionResult Index()
    {
    EmployeeContext context = new EmployeeContext();
    Employee emp = context.pl.Single();
    
    return View(emp);
    }
    }
    }
    
    Here we create a instance of EmployeeContext class and invoke the public property of that class.
  9. Now create the view for this program. Before adding the view with their presentation must build the project. Learn How to create the new view

Before adding the view with their presentation must build the project


  1. Prepare the view and access all the properties of the employee class by the @Model properties.
     @model WebApplication10.Models.Employee
    
    @{
    ViewBag.Title = "Employee Details";
    }
    
    <h2>Employee Details are:</h2>
    Employee Id : <p>@Model.ID</p>
    Employee Name : <p>@Model.Name</p>
    Employee Age : <p>@Model.age</p>
    
    
  2. Now run the code and check your desired output

Data Binding in MVC

How to create new user in ASP.NET 4.5

I have already explain custom registration control in asp.net on my blog. Now,A very simple method provided by the Microsoft in DOTNET Framework 4.5 for create new users. Using "Microsoft.AspNet.Identity" namespace you can create new users also implementing role init. This namespace is available in "Microsoft.AspNet.Identity.Core" assembly. Username and password are the primary field of registration so first of all, we will store the username by the textbox in "IUser" interface.  In this assembly IUser interface property is inherited by the IdentityUser class and this class is inherited by the ApplicationUser class. So we can easily access the UserName property of the IUser interface in ApplicationUser class.

var user = new ApplicationUser() { UserName = UserName.Text };

By this line of code, we can store the unique username in the database using the connection string, which is available in ApplicationDbContext  class. Now after retrieving the username, should go for second step that is store password in UserManager class using Create method( ), which is take some parameters such as

Create(ApplicationUser user, String Password);

Now, Retrieved result will store in IdentityResult class. Using Succeeded property of that class, we will check that username and password.
Now, the complete code is 

var manager = new UserManager();

var user = new ApplicationUser() { UserName = UserName.Text };

IdentityResult result = manager.Create(user, Password.Text);

Code generate the following output

How to create new user in ASP.NET 4.5

  In the next article i will show you how to add custom fields or you can say how to customized it.

How to make connection with the database

If you are creating dynamic application then must be used database. Before open the connection must to create connection string with the engine or database. Various database engine available in the market, which are SQL, MYSQL, ORACLE etc. Each application have own connection string to connect with the database. In this article, we will learn about that.

How to create connection String with SQL in ASP.NET C#

In Code File

using System.Data.SqlClient;

SqlConnection con = new SqlConnection();

con.ConnectionString =ConfigurationManager.ConnectionStrings ["ConnectionString"].ToString ();
con.Open ();
Using SqlConnection class, you can connect your application with database server. This class is exist in System.Data.SqlClient namespace. ConnectionString is the property of that class, in which you should pass some parameter which is mentioned below in web.config file.

In Web.Config file

<connectionStrings>

<add name="ConnectionString" connectionString="Data Source= (LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;MultipleActiveResultSets=True;Application Name=EntityFramework"
providerName="System.Data.SqlClient" />
</connectionStrings>

You can pass the ConnnectionString directly in the .cs file, but here we use web.config file for security purpose because this file is not rendered on the browser. ConnectionString take some parameters like DataSource( server name), AttachDbFilename (location of the file, where your database file exist), Integrated Security(takes windows based security). You can use Initial Catalog for database file name also username and password in place of  Integrated Security.

How to create connection String in PHP with phpmyadmin

<?php
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("studentinfo", $con);
?>

In the above mentioned code, 'mysql_connect' is a method, in which you have to pass name of server, username of the server and password. After creating the connection you should check that is connection is ok using die method. Using 'mysql_select_db' method you can pass the name of the database for updating the data.

How to use app bar in windows store app

Introduction

App bar is a container, which is contain items on it, such as AppBarButtton, AppBarToggleButton, and AppBarSeparator. You can put an app bar at the top of the page, at the bottom of the page, or both. If you want to use app bar, right click on window screen or press window+Z because App bar is hidden by default.

How to add App bar into your application

Step-1 : Assign a AppBar control to the TopAppBar or BottomAppBar property of a Page. like

<Page.TopAppBar>
    <AppBar>
        <!-- Place control here like AppBarButton -->
    </AppBar>
</Page.TopAppBar>

Step-2 : If you want to add App Bar at Bottom, must Assign a AppBar control to the BottomAppBar property of a Page, like


<Page.BottomAppBar>
   <AppBar>
        <!-- Place control here like AppBarButton -->
    </AppBar>
</Page.BottomAppBar>

Let's take an simple example, App Bar with Refresh button

<Page.TopAppBar>
        
        <AppBar>
            
            <AppBarButton Label="refresh" Icon="Refresh" Click="AppBarButton_Click" />
        </AppBar>
    </Page.TopAppBar>

Code Generate the following output

How to use app bar in windows store app
© Copyright 2013 Computer Programming | All Right Reserved