LINQ : DropdownList, Mapping
|
This example shows how to use LINQ (Language-Integrated Query
introduced around 2008).Mapping, and coding (with C# or Visual
Basic)
Please visit :
http://frontiersoft.net/BareBone_AspNet/index.htm for more on
ASP.Net
|
Keywords
- Creating Database connection from ServerExploer other than
local database (in App_data folder).
- DataContext
- LINQ -Entity, manual coding
- Initial Catalog='LINQ3'
- assembly="System.Data.Linq, (System.Data.Linq.dll)
- using System.Data.Linq;
- using System.Data.Linq.Mapping;
- using System.Web.Configuration;
- WebConfigurationManager.ConnectionStrings
|
Step : Create a new web-site (Intranet User
http://manas6/aspnet.35/mm.LINQ3/default.aspx )



At this point web.config does contain any connection string

Now create Table

|
Step 2: after entering some data in the table , close the table
and add any data source control to create a connection string

FYI, you will note that the connection string uses Initial
Catalog, than using a file as Datasource
- Data Source='MANAS6\SQLEXPRESS';Integrated Security=True;Pooling=False;Initial
Catalog='LINQ3'


Just Follow the IDE, using Next and then Finish, we just need a
connection string to connect the database LINQ3


|
Note the connection string formed in web.config, this connection
can be accessed from anywhere in the current and outside as a
public.
<connectionStrings>
<add name="LINQ3ConnectionString" connectionString="Data
Source='MANAS6\SQLEXPRESS';Integrated Security=True;Pooling=False;Initial
Catalog='LINQ3'"
providerName="System.Data.SqlClient" />
</connectionStrings>
|
SQL Server Management Studio Express is updated with the new
database.

|
Now add a folder and add class in it as shown below


|
Now add a reference


The above adds the System.Data.Linq dynamic link library, as an
assembly, and registered in Web.config.
<add assembly="System.Data.Linq, Version=3.5.0.0,
Culture=neutral, PublicKeyToken=B77A5C561934E089"/></assemblies>

|
Once the library is in place, edit the code module of
Linq_Entity.cs class

Code Linq_Entity.cs
using System;
using System.Data.Linq;
using System.Data.Linq.Mapping;
/// <summary>
/// Summary description for Linq_Entity
/// </summary>
///
[Table(Name="dbo.Simple_Table" )]
public class Linq_Entity
{
/* public Linq_Entity()
{
//
// TODO: Add constructor logic here
//
}
*/
[Column(IsPrimaryKey = true, IsDbGenerated = true)]
public string Lid { get; set; }
[Column]
public string FirstName { get; set; }
[Column]
public string LastName { get; set; }
[Column]
public string Position { get; set; }
[Column]
public string Experience { get; set; }
[Column]
public string Notes { get; set; }
}
|
Edit Default.aspx.

Code Default.aspx
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Web.Configuration;
// DataContext
using System.Data.Linq;
public partial class _Default : System.Web.UI.Page
{
private string strcnn = WebConfigurationManager.ConnectionStrings["LINQ3ConnectionString"].ConnectionString;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void DropDownList1_SelectedIndexChanged(object sender,
EventArgs e)
{
DataContext db = new DataContext(strcnn);
var tlinq = db.GetTable<Linq_Entity>();
DetailsView1.DataSource = tlinq.Where(m =>
m.FirstName.Equals(DropDownList1.SelectedItem.Text));
//DetailsView1.DataSource = tlinq.Where(m =>
m.FirstName.Contains(DropDownList1.SelectedItem.Text));
DetailsView1.DataBind();
}
}
Code: Default.aspx.cs
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Web.Configuration;
// DataContext
using System.Data.Linq;
public partial class _Default : System.Web.UI.Page
{
private string strcnn = WebConfigurationManager.ConnectionStrings["LINQ3ConnectionString"].ConnectionString;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void DropDownList1_SelectedIndexChanged(object sender,
EventArgs e)
{
DataContext db = new DataContext(strcnn);
var tlinq = db.GetTable<Linq_Entity>();
DetailsView1.DataSource = tlinq.Where(m =>
m.FirstName.Equals(DropDownList1.SelectedItem.Text));
//DetailsView1.DataSource = tlinq.Where(m =>
m.FirstName.Contains(DropDownList1.SelectedItem.Text));
DetailsView1.DataBind();
}
}
|
Run time view


|
|