1.linq创建之前,一定要在sql做好数据表的主外键关系。

2.linq文件是以.dbml结尾,一般一个数据库的名字就是一个linq的名字

3,以实例来演示增删改查

数据库的名字为linq,里面有两个表Users(UserName,Password,Sex,NickName,Birthday,Nation)和Nation(NationCode,NationName)

(1)创建名为linq的linq。

创建完之后啥也不用改,如果需要在重新封装类和数据扩展,那就想以前重新建立Users和UserData,只需要把需要重新封装和扩展的部分写上,在这之前一定要在总类面前加上Partial,如下

(2)继续封装类(注意partial)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; /// <summary>
/// Users 的摘要说明
/// </summary>
public partial class Users
{ public string SexStr
{
get {
string a = "<空>";
if (_Sex != null)
{
a=Convert.ToBoolean(_Sex) ? "男" : "女";
}
return a;
} }
public string NA
{
get {
return this.Nation1.NationName; }
} }

(3)建立方法(linq的增删改查方法)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; /// <summary>
/// UsersDate 的摘要说明
/// </summary>
public class UsersDate
{
linqDataContext cnn = null;
public UsersDate()
{
cnn = new linqDataContext();
}
/// <summary>
/// 查询全部信息
/// </summary>
/// <returns>泛型集合</returns>
public List<Users> quan()
{ return cnn.Users.ToList();//如果没有数据,返回一个count=0的泛型集合
} /// <summary>
/// 删除UserName=uname的整条数据
/// </summary>
/// <param name="uname">名称</param>
/// <returns>bool类型</returns>
public bool delete(string uname)
{
bool a = false;
Users u = cnn.Users.Where(r => r.UserName==uname).FirstOrDefault();
if (u != null)
{
cnn.Users.DeleteOnSubmit(u);
cnn.SubmitChanges();
a = true;
}
return a;
}
/// <summary>
/// 查询单条数据
/// </summary>
/// <param name="uname">名字</param>
/// <returns>对象</returns>
public Users dan(string uname)
{
Users u = cnn.Users.Where(r => r.UserName == uname).FirstOrDefault();
return u;
}
/// <summary>
/// 修改数据信息
/// </summary>
/// <param name="u">需要改的内容</param>
/// <returns>bool类型</returns>
public bool update(Users u)
{
bool a = false;
Users uu = cnn.Users.Where(r => r.UserName == u.UserName).FirstOrDefault();
if (uu != null)
{
uu.Password = u.Password;
uu.NickName = u.NickName;
uu.Sex = u.Sex;
uu.Birthday = u.Birthday;
uu.Nation = u.Nation;
}
try
{
cnn.SubmitChanges();
a = true;
}
catch { }
return a;
}
/// <summary>
/// 插入数据
/// </summary>
/// <param name="u">对象</param>
/// <returns>bool值</returns>
public bool insert(Users u)
{
bool a = false;
cnn.Users.InsertOnSubmit(u);
try
{
cnn.SubmitChanges();
a = true;
}
catch { }
return a;
} }

LINQ 的First 和 FirstOrDefault方法:

First()返回结果集中第一个匹配的元素,如果找不到会发生异常;

FirstOrDefault()返回结果集中第一个匹配的,如果找不到会返回空。

(4)主界面和功能

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<table style="width:100%; text-align:center">
<tr style="background-color:blue;">
<td>姓名</td>
<td>密码</td>
<td>性别</td>
<td>昵称</td>
<td>生日</td>
<td>民族</td>
<td>操作</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr style="background-color:gray;">
<td><%#Eval("UserName") %></td>
<td><%#Eval("Password") %></td>
<td><%#Eval("SexStr") %></td>
<td><%#Eval("NickName") %></td>
<td><%#Eval("Birthday","{0:yyyy年MM月dd日}") %></td>
<td><%#Eval("NA") %></td>
<td>
<a href="delete.aspx?uname=<%#Eval("UserName") %>">删除</a>&nbsp;&nbsp;&nbsp;
<a href="update.aspx?uname=<%#Eval("UserName") %>" target="_blank">修改</a>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate> </asp:Repeater>
<a href="insert.aspx" target="_blank">添加新数据</a>
</form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ if (!IsPostBack)
{
Repeater1.DataSource = new UsersDate().quan();
Repeater1.DataBind();
} }
}

(5)删除界面的代码(删除界面不用布局,什么也没写)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls; public partial class delete : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string uname=Request["uname"];//在delete.aspx页面接uanme
bool a = new UsersDate().delete(uname);
if (a)
{
Response.Write("<script>");
Response.Write("alert('删除成功');");
Response.Write("window.location.href='Default.aspx';");
Response.Write("</script>"); }
else
{
Response.Write("<script>");
Response.Write("alert('删除失败');");
Response.Write("window.location.href='Default.aspx';");
Response.Write("</script>");
} }
}

(6)插入界面的布局和代码

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="insert.aspx.cs" Inherits="insert" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
姓名<asp:TextBox ID="uname_Text" runat="server"></asp:TextBox>
<asp:Label ID="unameerror_label" runat="server" Text=""></asp:Label><br />
密码<asp:TextBox ID="pwd1_Text" runat="server" TextMode="Password"></asp:TextBox>
<asp:Label ID="pwd1errpr_Label" runat="server" Text="Label"></asp:Label><br />
确认密码<asp:TextBox ID="pwd2_Text" runat="server" TextMode="Password"></asp:TextBox><br />
性别<asp:RadioButtonList ID="RadioButtonList1" runat="server" Width="106px" RepeatDirection="Horizontal">
<asp:ListItem Value="true" Selected="True">男</asp:ListItem>
<asp:ListItem Value="false">女</asp:ListItem>
</asp:RadioButtonList>
昵称<asp:TextBox ID="nickname_TextBox" runat="server"></asp:TextBox>
<asp:Label ID="nicknameerror_Label" runat="server" Text="Label"></asp:Label><br />
生日<asp:DropDownList ID="year_dd" runat="server" AutoPostBack="false"></asp:DropDownList>
<asp:DropDownList ID="month_dd" runat="server" AutoPostBack="false"></asp:DropDownList>
<asp:DropDownList ID="day_dd" runat="server" AutoPostBack="false"></asp:DropDownList><br />
民族<asp:DropDownList ID="nation_dd" runat="server"></asp:DropDownList><br /> <asp:Button ID="enter" runat="server" Text="确定" />
</div>
</form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls; public partial class insert : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{ for (int i = ; i >= ; i--)
{
year_dd.Items.Add(new ListItem(i.ToString(), i.ToString())); }
for (int i = ; i >= ; i--)
{
month_dd.Items.Add(new ListItem(i.ToString(), i.ToString())); }
for (int i = ; i >= ; i--)
{
day_dd.Items.Add(new ListItem(i.ToString(), i.ToString())); }
nation_dd.DataSource = new NationData().quan();
nation_dd.DataTextField = "NationName";
nation_dd.DataValueField = "NationCode";
nation_dd.DataBind(); }
enter.Click += enter_Click;
} void enter_Click(object sender, EventArgs e)
{
Users uu = new Users();
Users u = new UsersDate().dan(uname_Text.Text);
if (u != null)
{
unameerror_label.Text = "该用户名已被占用";
return;
}
unameerror_label.Text = "";
uu.UserName = uname_Text.Text;
uu.Password = pwd1_Text.Text;
uu.NickName = nickname_TextBox.Text;
uu.Sex = Convert.ToBoolean(RadioButtonList1.SelectedValue);
uu.Birthday = Convert.ToDateTime(year_dd.SelectedValue+"-"+month_dd.SelectedValue+"-"+day_dd.SelectedValue);
uu.Nation = nation_dd.SelectedValue;
bool a = new UsersDate().insert(uu);
if (a)
{
Response.Write("<script>");
Response.Write("alert('插入成功');");
Response.Write("window.opener.location.href='Default.aspx';");
Response.Write("window.close();");
Response.Write("</script>");
}
else
{
Response.Write("<script>");
Response.Write("alert('插入失败');");
Response.Write("</script>");
} }
}

(7)修改界面的布局和代码

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="update.aspx.cs" Inherits="update" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
姓名<asp:TextBox ID="uname_Text" runat="server"></asp:TextBox><br />
密码<asp:TextBox ID="pwd1_Text" runat="server" TextMode="Password"></asp:TextBox>
<asp:Label ID="pwd1errpr_Label" runat="server" Text="Label"></asp:Label><br />
确认密码<asp:TextBox ID="pwd2_Text" runat="server" TextMode="Password"></asp:TextBox><br />
性别<asp:RadioButtonList ID="RadioButtonList1" runat="server" Width="106px" RepeatDirection="Horizontal">
<asp:ListItem Value="true">男</asp:ListItem>
<asp:ListItem Value="false">女</asp:ListItem>
</asp:RadioButtonList>
昵称<asp:TextBox ID="nickname_TextBox" runat="server"></asp:TextBox>
<asp:Label ID="nicknameerror_Label" runat="server" Text="Label"></asp:Label><br />
生日<asp:DropDownList ID="year_dd" runat="server" AutoPostBack="false"></asp:DropDownList>
<asp:DropDownList ID="month_dd" runat="server" AutoPostBack="false"></asp:DropDownList>
<asp:DropDownList ID="day_dd" runat="server" AutoPostBack="false"></asp:DropDownList><br />
民族<asp:DropDownList ID="nation_dd" runat="server"></asp:DropDownList><br /> <asp:Button ID="enter" runat="server" Text="确定" />
</div>
</form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls; public partial class update : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Users u = new UsersDate().dan(Request["uname"]);
if (u != null)
{
uname_Text.Text = u.UserName;
if (u.Sex==null)
{ }
else
{
if (u.Sex == true)
{
RadioButtonList1.Items[].Selected = true;
}
else
{
RadioButtonList1.Items[].Selected = true;
} } nickname_TextBox.Text = u.NickName;
for (int i = ; i >= ; i--)
{
year_dd.Items.Add(new ListItem(i.ToString(),i.ToString())); }
for (int i = ; i >= ; i--)
{
month_dd.Items.Add(new ListItem(i.ToString(), i.ToString())); }
for (int i = ; i >= ; i--)
{
day_dd.Items.Add(new ListItem(i.ToString(), i.ToString())); }
nation_dd.DataSource = new NationData().quan();
nation_dd.DataTextField = "NationName";
nation_dd.DataValueField = "NationCode";
nation_dd.DataBind();
year_dd.SelectedValue = u.Birthday.Value.Year.ToString();
month_dd.SelectedValue = u.Birthday.Value.Month.ToString();
day_dd.SelectedValue = u.Birthday.Value.Day.ToString();
nation_dd.SelectedValue = u.Nation;
} }
enter.Click += enter_Click; } void enter_Click(object sender, EventArgs e)
{
Users u = new Users();
u.UserName = uname_Text.Text;
u.Password = pwd1_Text.Text;
u.NickName = nickname_TextBox.Text;
u.Sex = Convert.ToBoolean(RadioButtonList1.SelectedValue);
u.Birthday = Convert.ToDateTime(year_dd.SelectedValue+"-"+month_dd.SelectedValue+"-"+day_dd.SelectedValue);
u.Nation = nation_dd.SelectedValue;
bool a = new UsersDate().update(u);
if (a)
{
Response.Write("<script>");
Response.Write("alert('修改成功');");
Response.Write("window.opener.location.href='Default.aspx';");
Response.Write("window.close();");
Response.Write("</script>");
}
else
{
Response.Write("<script>");
Response.Write("alert('修改失败');");
Response.Write("window.opener.location.href='Default.aspx';");
Response.Write("window.close();");
Response.Write("</script>");
} }
}

以上名称,密码或者其他的内容的格式没有做限制。特别是日期的三级联动也没做!

完!!

linq的创建 和 数据的增删改查的更多相关文章

  1. 【黑马Android】(04)数据库的创建和sql语句增删改查/LinearLayout展示列表数据/ListView的使用和BaseAdater/内容提供者创建

    数据库的创建和sql语句增删改查 1. 载入驱动. 2. 连接数据库. 3. 操作数据库. 创建表: create table person( _id integer primary key, nam ...

  2. Django 06 Django模型基础1(ORM简介、数据库连接配置、模型的创建与映射、数据的增删改查)

    Django 06 Django模型基础1(ORM简介.数据库连接配置.模型的创建与映射.数据的增删改查) 一.ORM系统 #django模型映射关系 #模型类-----数据表 #类属性-----表字 ...

  3. MVC模式:实现数据库中数据的增删改查功能

    *.数据库连接池c3p0,连接mysql数据库: *.Jquery使用,删除时跳出框,确定是否要删除: *.使用EL和JSTL,简化在jsp页面中插入的java语言 1.连接数据库 (1)导入连接数据 ...

  4. Node.js + MySQL 实现数据的增删改查

    通过完成一个 todo 应用展示 Node.js + MySQL 增删改查的功能.这里后台使用 Koa 及其相应的一些中间件作为 server 提供服务. 初始化项目 $ mkdir node-cru ...

  5. mysql学习笔记一 —— 数据的增删改查

    1.连接mysql mysql 直接回车(是以root身份,密码空,登陆的是本机localhost) [root@www mysql]# mysql -uroot -p123 -S /var/lib/ ...

  6. BitAdminCore框架应用篇:(二)创建一个简单的增删改查模块

    NET Core应用框架之BitAdminCore框架应用篇系列 框架演示:http://bit.bitdao.cn 框架源码:https://github.com/chenyinxin/cookie ...

  7. HDFS只支持文件append操作, 而依赖HDFS的HBase如何完成数据的增删改查

    转:http://www.th7.cn/db/nosql/201510/135382.shtml 1. HDFS的文件append功能 早期版本的HDFS不支持任何的文件更新操作,一旦一个文件创建.写 ...

  8. Mybatis实现数据的增删改查

    Mybatis实现数据的增删改查 1.项目结构(使用maven创建项目) 2.App.java package com.GetcharZp.MyBatisStudy; import java.io.I ...

  9. Django框架之第二篇--app注册、静态文件配置、form表单提交、pycharm连接数据库、django使用mysql数据库、表字段的增删改查、表数据的增删改查

    本节知识点大致为:静态文件配置.form表单提交数据后端如何获取.request方法.pycharm连接数据库,django使用mysql数据库.表字段的增删改查.表数据的增删改查 一.创建app,创 ...

随机推荐

  1. [原创]java WEB学习笔记56:Struts2学习之路---Struts 版本的 登录 demo

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  2. Python和Ruby开发中源文件中文注释乱码的解决方法(Eclipse和Aptana Studio3均适用)

    Eclipse的设置(Aptana Studio3与Eclipse基本完全相同,此处略) window->preferences->general->editors->text ...

  3. C++之路进阶——codevs1285(宠物收养所)

    1285 宠物收养所  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond   题目描述 Description 最近,阿Q开了一间宠物收养所.收养所提供两种服 ...

  4. 从一简单程序看C语言内存分配

    int main13(){ char buf[20]="aaaa"; char buf2[] = "bbbb"; char *p1 = "111111 ...

  5. SPOJ COT3 Combat on a tree(Trie树、线段树的合并)

    题目链接:http://www.spoj.com/problems/COT3/ Alice and Bob are playing a game on a tree of n nodes.Each n ...

  6. 手把手教你用动软.NET代码生成器实例教程

    动软实战攻略 手把手教你用动软 文档编号:20110421 版权所有 © 2004-2011 动软 在线帮助:http://help.maticsoft.com 目录   一.        产品介绍 ...

  7. visio的简单用法

    visio图边缘会自动扩展 将常用工具放到收藏夹中,拖进去就可以用. 基本形状基本能够满足一般的需求. 支持自己定义形状,将定义好的形状右击组合之后,收藏到收藏夹或导出模版. 多用组合,收藏夹,调整图 ...

  8. 【兄弟连ThinkPHP】1、介绍和安装

    琢磨了好几天的ThinkPHP了,兄弟连的视频真心不错,下面是记得一些要点,只做备忘,有兴趣的朋友请去百度兄弟连. ## ThinkPHP 3 介绍及安装#讲师:赵桐正微博:http://weibo. ...

  9. jboss-as 目录结构(转)

    jboss-as 目录结构(Directory Structure) Directory Description bin Contains startup, shutdown and other sy ...

  10. 161206、 Ionic、Angularjs、Cordova搭建Android开发环境

    1.jdk 环境变量配置 path:C:\Program Files\Java\jdk1.7.0_79\bin 2.Node.js 因为安装cordova时要用到node.js的npm 下载地址: h ...