LinQ和ADO.Net增删改查 备忘
是否些倦了 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增删改查 备忘的更多相关文章
- Django--ORM--模型增删改查--备忘
以上运算符都区分大小写,在这些运算符前加上i表示不区分大小写,如iexact.icontains.istartswith.iendswith.insert into tb_bookinfo()valu ...
- Ado.net[增删改查,GET传值]
1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Home.aspx.c ...
- Linq 数据库操作(增删改查)
Linq数据库增删改查 Linq是一种查询语言,集成包含在formwork中,包含在C#语言中,它的作用是降低查询的门槛,提高开发效率,是我们必须掌握的技术之一,下面是我自己对linq数据库操作的方法 ...
- ADO.NET 增删改查的基本用法
ADO.NET:数据访问技术 就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中也可以将数据库中的数据提取到内存中供程序调用 所有数据访问技术的基础 连接 ...
- Linq to SQL 的增删改查操作
Linq,全称Language Integrated Query,是C#语言的一个扩展,可以将数据查询直接集成到编程语言本身中. Linq分为查询语法和方法语法,说白了查询语法就是 from wher ...
- ado.net增删改查练习
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...
- ado.net增删改查操作
ado.net是数据库访问技术将数据库中的数据,提取到内存中,展示给用户看还可以将内存中的数据写入数据库中去 并不是唯一的数据库访问技术,但是它是最底层最基础的数据库访问技术 使用ado.net对数据 ...
- ADO.net 增删改查
ADO.net 一.定义:编程开发语言与数据库连接的一门语言技术 二.链接: 在vs中操作数据库需在开头进行链接 链接内容:using System.Data.SqlClient 三.引用数据库: 四 ...
- linq to sql 中增删改查
首先我先说一下,如果真的要用linq做项目的话,也会是比较方便的.已经尝试了在三层架构中应用linq to sql 比较方便. //有三个不同的数据库表,所以写法不一样 public class Li ...
随机推荐
- 构建兼容浏览器的Angularjs web应用
背景 随着mvvm逐渐成熟,现在使用jQuery构建web应用已经显得过时了,而且使用jQuery需要编写更多的代码去控制dom的取值.赋值.绑定事件等,而mvv从底层实现了对以上操作的支持,让程序员 ...
- 30个要点帮你完成java代码优化
通过java代码规范来优化程序,优化内存使用情况,防止内存泄露 可供程序利用的资源(内存.CPU时间.网络带宽等)是有限的,优化的目的就是让程序用尽可能少的资源完成预定的任务.优化通常包含两方面的内容 ...
- Trie tree实践
1.Trie树 Trie树即字典树或前缀树, 2.实践 代码实践如下: package cn.edu.buaa.trie; import java.util.HashSet; /** * @autho ...
- String类的compareTo()方法的源码解析
private final char value[]; 字符串会自动转换为一个字符数组. public int compareTo(String anotherString) { //this -- ...
- [Head First设计模式]一个人的平安夜——单例模式
系列文章 [Head First设计模式]山西面馆中的设计模式——装饰者模式 [Head First设计模式]山西面馆中的设计模式——观察者模式 [Head First设计模式]山西面馆中的设计模式— ...
- 15个JavaScript本地存储技术的函数库和工具
当构建更复杂的JavaScript应用程序运行在用户的浏览器是非常有用的,它可以在浏览器中存储信息,这样的信息可以被共享在不同的页面,浏览会话. 在最近的过去,这将有可能只被cookies文本文件保存 ...
- Bash 为何要发明 shopt 命令
在 Bash 中,有两个内置命令用来控制 Bash 的各种可配置行为的开关(打开或关闭),这些开关称之为选项(option).其中一个命令是 set,set 命令有三种功能:显示所有的变量和函数:修改 ...
- padding
padding-top:20px;上内边距 padding-right:30px;右内边距 padding-bottom:30px;下内边距 padding-left:20px;左内边距 paddin ...
- curl发送get和post请求
function getAction($url='') { // curl 请求一共分四步,初始化,设置属性,执行并获取结果,释放句柄 // 一.初始化 $curl = curl_init(); // ...
- PHP的单态类——为了产生唯一的对象
pdo就是使用了单态类,使得对象永远只实例化一次,减少了内存消耗. 单态类: <?php class A{ private static $a = null; private function ...