是否些倦了 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. php桥接设计模式

    <?php //桥接模式 abstract class info{ protected $send=null; public function __construct($send){ $this ...

  2. 看完《Thinking in Java》后,我觉得自己就是一个不懂编程的小孩子,如何快速摆脱这种自卑感

    我虽然不懂java也不懂程序员,但我理解这种心情.当看到自己还算自信的专业领域中一部超越自己水平很多的作品或比自己优秀太多的人,难免会感到震惊,继而进行自我否定.就像我曾经非常喜欢写作,在杂志和校报上 ...

  3. XML编码utf-8有中文无法解析或乱码 C#

    XML的encoding="UTF-8" ,含有中文的话(部分)会出现乱码. 网上还是很多这类问题跟解决办法的. 表现为用ie或者infopath之类的xml软件打不开这个xml, ...

  4. windows7下修改hosts文件无效解决办法(转)

    通常会为了开发方便.或者屏蔽掉一些恶意网站,我们会在hosts(c:\windows\system32\drivers\etc\hosts)文件中进行相应的域名指向,例:

  5. 生成彩条的MATLAB代码

    clc;close all;clear %read image % RGBimga = imread('bmpinput_1080p.bmp'); RGBimga = imread('bmpinput ...

  6. [Head First设计模式]一个人的平安夜——单例模式

    系列文章 [Head First设计模式]山西面馆中的设计模式——装饰者模式 [Head First设计模式]山西面馆中的设计模式——观察者模式 [Head First设计模式]山西面馆中的设计模式— ...

  7. [CentOs7]搭建ftp服务器

    摘要 vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点.vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux. ...

  8. R语言-用R眼看琅琊榜小说的正确姿势

    博客总目录:http://www.cnblogs.com/weibaar/p/4507801.html 目录: 零:写在前面的一些废话 一.R眼看琅琊榜的基本原理 1.导入数据 2.筛选数据 3.多条 ...

  9. JSP脚本中的9个内置对象

    JSP脚本中包含9个内置对象,这9个内置对象都是Servlet API接口的实例,只是JSP规范对它们进行了默认初始化.也就是说它们已经是对象,可以直接使用. 我们随意打开一个由JSP页面生成的Ser ...

  10. [linux]Socket编程的头文件

    socket编程中需要用到的头文件 sys/types.h:数据类型定义 sys/socket.h:提供socket函数及数据结构 netinet/in.h:定义数据结构sockaddr_in arp ...