是否些倦了 SqlConnection conn=new SqlConnection();一系列繁冗的代码? 来试试Linq吧

查:

using System.Data.SqlClient;

namespace obj
{
public class StudentDA
{
SqlConnection conn;
SqlCommand cmd;
public StudentDA()
{
conn = new SqlConnection("server=.;database=aaaaa;user=sa;pwd=123");
cmd = conn.CreateCommand();
}
public List<type> Search()
{
List<type> data = null;
cmd.CommandText = "select Student.sno,sname,Course.Cno,cname,tname,degree from Score join Student on student.sno=score.sno join course on course.Cno=score.Cno join teacher on teacher.tno=course.tno";
cmd.Parameters.Clear();
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
data = new List<type>();
while (dr.Read())
{
type a = new type();
a.Sno = dr["Sno"].ToString();
a.Sname = dr["Sname"].ToString();
a.Cno = dr["Cno"].ToString();
a.Cname = dr["Cname"].ToString();
a.Tname = dr["Tname"].ToString();
a.Degree = dr["Degree"].ToString();
data.Add(a);
}
}
cmd.Dispose();
conn.Close();
return data;
}
 public type Ss(string id,string od)  //两个参数值,数出 type类型结果
{
type Ss = null;
cmd.CommandText = "select Student.sno,sname,Course.Cno,cname,tname,degree from Score join Student on student.sno=score.sno join course on course.Cno=score.Cno join teacher on teacher.tno=course.tno where course.cno=@Cno and student.sno=@Sno";
cmd.Parameters.Clear();
cmd.Parameters.Add("@Cno", od);
cmd.Parameters.Add("@Sno", id);
conn.Open();
SqlDataReader dr =cmd.ExecuteReader();
if(dr.Read())
{
Ss = new type();
Ss.Sno = dr["Sno"].ToString();
Ss.Sname = dr["Sname"].ToString();
Ss.Cno = dr["Cno"].ToString();
Ss.Cname = dr["Cname"].ToString();
Ss.Tname = dr["Tname"].ToString();
Ss.Degree = dr["Degree"].ToString();
}
cmd.Dispose();
conn.Close();
return Ss;
}


LinQ:

需要先建一个 LinQ to SQL类,在服务器资源管理器中建立新的连接 然后设置数据库地址和登录设置,然后选取数据库

确定建好类文件 .dbml 选择数据空中的表拖入,系统自动会生成以列名相同的类,

然后见一个类 来写方法

 public class InfoBF
{
private MyDBDataContext _Context = new MyDBDataContext();
public List<Info> Select() //查询info类型的所有
{
return _Context.Info.ToList();
}
public Info Select(string code) //一个输入参数返回 info类型
{
var query = _Context.Info.Where(p=>p.Code == code); //lambda表达式
if (query.Count() > )
{
return query.First(); //取第一条
}
return null;
}

增:

 public void Insert(Student stu)
{
cmd.CommandText = "insert into student values(@Sno,@Sname,@Ssex,@Sbirthday,@Class)";
cmd.Parameters.Clear();
cmd.Parameters.Add("@Sno", stu.Sno);
cmd.Parameters.Add("@Sname", stu.Sname);
cmd.Parameters.Add("@Ssex", stu.Ssex);
cmd.Parameters.Add("@Sbirthday", stu.Sbirthday);
cmd.Parameters.Add("@Class", stu.Class);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}

LinQ:

   public void Insert(string code, string name, bool sex, string nation, DateTime birthday)
{
Info data = new Info
{
Code = code,
Name = name,
Sex = sex,
Nation = nation,
Birthday = birthday
};
_Context.Info.InsertOnSubmit(data);
_Context.SubmitChanges();
}
 
 public void Insert(Info data)
{
_Context.Info.InsertOnSubmit(data);
_Context.SubmitChanges();
}

 

改:

 public void Update(type data)
{
cmd.CommandText = "update student set sname=@Sname where sno=@Sno;update score set degree=@Degree where cno=@Cno and sno=@Sno;update course set cname=@Cname where cno=@Cno;update teacher set tname=@Tname where tno =(select tno from course where cno=@Cno)";
cmd.Parameters.Add("@Sno", data.Sno);
cmd.Parameters.Add("@Sname", data.Sname);
cmd.Parameters.Add("@Cno", data.Cno);
cmd.Parameters.Add("@Cname", data.Cname);
cmd.Parameters.Add("@Tname", data.Tname);
cmd.Parameters.Add("@Degree", data.Degree);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}

LinQ:

 public void Update(string code, string name, bool sex, string nation, DateTime birthday)
{
var query = _Context.Info.Where(p => p.Code == code);
if (query.Count() > )
{
Info data = query.First();
data.Name = name;
data.Sex = sex;
data.Nation = nation;
data.Birthday = birthday;
_Context.SubmitChanges();
}
}

删:

 public void Delete(string id)
{
cmd.CommandText = "";
cmd.Parameters.Clear();
cmd.Parameters.Add("@id", id);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}

LinQ:

 public void Delete(string code)
{
var query = _Context.Info.Where(p=>p.Code == code);
if (query.Count() > )
{
Info data = query.First();
_Context.Info.DeleteOnSubmit(data);
_Context.SubmitChanges();
}
}

LinQ和ADO.Net增删改查 备忘的更多相关文章

  1. Django--ORM--模型增删改查--备忘

    以上运算符都区分大小写,在这些运算符前加上i表示不区分大小写,如iexact.icontains.istartswith.iendswith.insert into tb_bookinfo()valu ...

  2. Ado.net[增删改查,GET传值]

    1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Home.aspx.c ...

  3. Linq 数据库操作(增删改查)

    Linq数据库增删改查 Linq是一种查询语言,集成包含在formwork中,包含在C#语言中,它的作用是降低查询的门槛,提高开发效率,是我们必须掌握的技术之一,下面是我自己对linq数据库操作的方法 ...

  4. ADO.NET 增删改查的基本用法

    ADO.NET:数据访问技术 就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中也可以将数据库中的数据提取到内存中供程序调用 所有数据访问技术的基础 连接 ...

  5. Linq to SQL 的增删改查操作

    Linq,全称Language Integrated Query,是C#语言的一个扩展,可以将数据查询直接集成到编程语言本身中. Linq分为查询语法和方法语法,说白了查询语法就是 from wher ...

  6. ado.net增删改查练习

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...

  7. ado.net增删改查操作

    ado.net是数据库访问技术将数据库中的数据,提取到内存中,展示给用户看还可以将内存中的数据写入数据库中去 并不是唯一的数据库访问技术,但是它是最底层最基础的数据库访问技术 使用ado.net对数据 ...

  8. ADO.net 增删改查

    ADO.net 一.定义:编程开发语言与数据库连接的一门语言技术 二.链接: 在vs中操作数据库需在开头进行链接 链接内容:using System.Data.SqlClient 三.引用数据库: 四 ...

  9. linq to sql 中增删改查

    首先我先说一下,如果真的要用linq做项目的话,也会是比较方便的.已经尝试了在三层架构中应用linq to sql 比较方便. //有三个不同的数据库表,所以写法不一样 public class Li ...

随机推荐

  1. Django Channels 学习笔记

    一.为什么要使用Channels 在Django中,默认使用的是HTTP通信,不过这种通信方式有个很大的缺陷,就是不能很好的支持实时通信.如果硬是要使用HTTP做实时通信的话只能在客户端进行轮询了,不 ...

  2. 修改Firefox的User-Agent,伪装修改秘籍

    火狐浏览器修改userAgent的办法一: 在火狐浏览器地址栏输入"about:config",按下回车进入设置菜单. 找到"general.useragent.over ...

  3. TypeScript Type Innference(类型推断)

    在这一节,我们将介绍TypeScript中的类型推断.我们将会讨论类型推断需要在何处用到以及如何推断. 基础 在TypeScript中,在几个没有明确指定类型注释的地方将会使用类型推断来提供类型信息. ...

  4. Java多线程干货系列—(一)Java多线程基础

    前言 多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程并发编程对我们来说极其重要,下面跟我一起开启本次的学习之旅吧. 正文 线程与进程 1 线程:进程中负责程序执行的 ...

  5. 介绍对称加密算法,最常用的莫过于DES数据加密算法

    DES DES-Data Encryption Standard,即数据加密算法.是IBM公司于1975年研究成功并公开发表的.DES算法的入口参数有三个:Key.Data.Mode.其中Key为8个 ...

  6. Ambari——大数据平台的搭建利器

    转载自http://www.ibm.com/developerworks/cn/opensource/os-cn-bigdata-ambari/ 扩展 Ambari 管理一个自定义的 Service ...

  7. Linux ext3 ext4 区别

    Linux kernel 自 2.6.28 开始正式支持新的文件系统 Ext4. Ext4 是 Ext3 的改进版,修改了 Ext3 中部分重要的数据结构,而不仅仅像 Ext3 对 Ext2 那样,只 ...

  8. 通用PE工具箱 4.0精简优化版

    通用PE工具箱 4.0精简优化版 经用过不少 WinPE 系统,都不是很满意,普遍存在篡改主页.添加广告链接至收藏夹.未经允许安装推广软件等流氓行为,还集成了诸多不常用的工具,令人头疼不已.那么今天给 ...

  9. centos7安装activemq

    activemq下载地址,http://activemq.apache.org/download.html,下载后解压,进入bin,直接运行 activemq start bin/activemq s ...

  10. QQ空间HD(6)-实现自定义的选项卡切换效果

    DJTabbarButton.m #import "DJTabbarButton.h" @implementation DJTabbarButton - (instancetype ...