是否些倦了 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. <<< html图片背景平铺

    CSS背景图片平铺技巧 使用CSS来设置背景图片同传统的做法一样简单,但相对于传统控制方式,CSS提供了更多的可控选项,我们先来看看最基本的设置图片的方法.html代码: 代码如下: <divi ...

  2. PHP WAMP 文件上传 及 简单的上传预览

    ...... 使用特殊的表单类型file, 主(上传)页面: <form action="chuli.php" method="post" enctype ...

  3. JQ001-认识jQuery 和 JQ002-jQuery选择器

    JQ001-认识jQuery jQuery环境配置:将jQuery.js文件引入到html页面中即可. 代码如下: <!DOCTYPE html> <html> <hea ...

  4. ng-switch

    <p>ng-switch : </p> <div ng-switch="isShow"><!--isShow是boolean值--> ...

  5. JS 原型的妙用

    原型是JS的一个重要的特征,通过它可以实现类和实例直接的继承关系. 1.原型来来实现数据备份 // 通过原型来来实现数据备份 function p(x){ this.x = x; } p.protot ...

  6. centos7安装图片界面

    yum groupinstall "GNOME Desktop" "Graphical Administration Tools"

  7. Visual Studio常用快捷键

    1. 代码自动对齐:CTRL+K+F 2. 撤销---使用组合键“Ctrl+Z”进行撤销操作 3. 反撤销---使用组合键“Ctrl+Y”进行反撤销操作 4. 使用组合键“Ctrl+J”或者使用组合键 ...

  8. js parseInt 显示0

    parseInt 有第二个参数, 就是进制参数 parseInt("08", 10);  //表示这个数字是十进制的就不会出错了.

  9. jquery 事件委托

    什么事件委托? DOM在为页面中的每个元素分派事件时,相应的元素一般都在事件冒泡阶段处理事件.在类似 body > div > a 这样的结构中,如果单击a元素,click事件会从a一直冒 ...

  10. HTML页面meta标签内容详解

    所有的浏览器都支持meta标签,用于提供页面相关信息,信息都是以名(http-equiv和name标示)/值(content标示)对的形式现实. 属性content,用于定义http-equiv(定义 ...