一:  新建名为linq的项目

创建 linq

1 在项目里添加文件夹 App_Code;

2 在文件夹(App_Code) 添加  名为db的    Linq To Sql 类  :一个Linq To Sql 类对应一个数据库且不能重名。

3 点击服务器资源管理器 出现以下界面:

(图一)           

4.点击上图提示的连接服务器的图标,出现以下界面:

(图二)

5 连接到名为(.)的数据库,用身份验证进入数据库选择所用表的数据库文件夹名

6 将所用的表拖到(图一)里,出现以下界面(图三)  ★注意所用的表必须设定主外键。

二: 写方法

1   查询表里全部用户:

引用命名空间   : using linq.App_Code

1)查全部:

 using (dbDataContext con = new dbDataContext())             //      引用数据库
{
List<Users> li = con.Users.ToList(); //从数据库查询出来的所有用户信息(li)
foreach (Users u in li) //从集合里遍历出来的u 就是每个用户的信息
{ }
}

2)精确查:

   using (dbDataContext con = dbDataContext())
{
string x = "三";
string y = "";
List<Users> li = con.Users.Where(r=>r.Nickname==x&&r.password==y) .ToList();//从数据库查询出来的所有用户名为“三”并且密码是123的用户
foreach (Users u in li) //从集合里遍历出来的u 就是每个用户的信息
{ }
}

3) 模糊差:

using (dbDataContext con = new dbDataContext())
                               {
                                       string x = "三";
                                       List<Users> li = con.Users.Where(r=>r.Nickname.Contains(x)) .ToList();   //    从数据库查询出来的所有昵称包含“三”字符的用户
                                       foreach (Users u in li)                                                                                //       从集合里遍历出来的u 就是每个用户的信息
                                    {

}
                              }

4)查其中一个的数据:

using (DataClasses1DataContext con = new DataClasses1DataContext())
                                        {

Users u = con.Users.FirstOrDefault();                     //从数据库查询所有中的第一条用户信息

}

5)添加数据:

   using (dbDataContext con = new dbDataContext())
{
Users us = con.Users.Where(a => a.UserName == textBox1.Text).FirstOrDefault(); if (us != null)
{
MessageBox.Show("用户已存在,请重新输入"); //
}
else
{ Users u = new Users();
if (u != null)
{
u.UserName = textBox1.Text;
string x = textBox2.Text;
string y = textBox3.Text;
if (x != y)
{
MessageBox.Show("两次密码输入不一致");
return; }
else
{
u.password = textBox3.Text;
u.Nickname = textBox4.Text;
if (radioButton1.Checked == true)
{
u.sex = true;
}
else
{
u.sex = false;
} u.brithday = Convert.ToDateTime(maskedTextBox1.Text);
if (comboBox1.SelectedText == "汉族")
{
u.NationCode = "N001";
}
else if (comboBox1.SelectedText == "藏族")
{
u.NationCode = "N003"; }
else if (comboBox1.SelectedText == "黎族")
{
u.NationCode = "N004";
}
else
{
u.NationCode = "N005";
}
con.Users.InsertOnSubmit(u); //连接数据库Users表并提交增加的用户信息u;
con.SubmitChanges(); // 向数据库提交改变;
MessageBox.Show("添加成功");
} }

6) 删除数据:

 using (dbDataContext con = new dbDataContext())
{
List<Users> u = con.Users.Where(a => a.Ids.ToString() == listView1.SelectedItems[].Text).ToList();
DialogResult dr= MessageBox.Show("确定删除吗","删除",MessageBoxButtons.OKCancel);
if (dr == DialogResult.OK)
{
con.Users.DeleteOnSubmit(u[]); //从表里删除选中的用户信息
con.SubmitChanges(); //并提交改变
MessageBox.Show("删除成功");

7) 改数据:

    using (dbDataContext con = new dbDataContext())
{
Users u = con.Users.Where(a => a.Ids.ToString() == id).FirstOrDefault();
if (u != null)
{
u.Nickname = textBox34.Text;
if (radioButton1.Checked == true)
{
u.sex = true;
}
else
{
u.sex =false;
}
u.brithday = Convert.ToDateTime(textBox35.Text);
u.Nation.NationName = textBox36.Text;
con.SubmitChanges();
MessageBox.Show("修改成功");
}

linq 高集成化数据访问技术的更多相关文章

  1. ADO.NET数据访问技术

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

  2. [翻译]比较ADO.NET中的不同数据访问技术(Performance Comparison:Data Access Techniques)

    Performance Comparison: Data Access Techniques Priya DhawanMicrosoft Developer Network January 2002 ...

  3. Spring Data:企业级Java的现代数据访问技术(影印版)

    <Spring Data:企业级Java的现代数据访问技术(影印版)>基本信息原书名:Spring Data:Modern Data Access for Enterprise Java作 ...

  4. jdbc数据访问技术

    jdbc数据访问技术 1.JDBC如何做事务处理? Con.setAutoCommit(false) Con.commit(); Con.rollback(); 2.写出几个在Jdbc中常用的接口 p ...

  5. asp.net LINQ数据访问技术from where select order by子句

    using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI ...

  6. ADO.NET(数据访问技术)

    简单的说,C#已经内置了一些类,我们可以利用这些类来访问数据库.在这里,我们假设读者已经熟悉SqlServer数据库或者其它数据库(我以后也会补上相关内容).我们如何来实现这项技术呢?大致可以分为三个 ...

  7. iOS 结构化数据访问

    一.介绍 在存储大量数据时,除了最基本的打开文件,读取文件,存盘等这些没有明确管理机制的方式来存储数据外,iOS还提供了另外几种重要的数据存储方式.虽然这些方式最后还是将数据存储在文件中,但是iOS以 ...

  8. EFCore学习记录--数据访问技术人门

    1.安装Microsoft.EntityFrameworkCore.Sqlite.Microsoft.EntityFrameworkCore.Tools包2.创建模型 数据库上下文模型:Bloggin ...

  9. EFCore学习记录--数据访问技术人门2

    1 code fist 1.创建实体类: 2.创建DbContext类: mysql连接字符串是:Server=127.0.0.1;Port=3306;Database=BlogDb; User=ro ...

随机推荐

  1. 8千字干货教程|java反射精讲

    java反射机制精讲 目录 1. 反射机制的概念 2. 反射的基础Class类 3. 反射的用法 4. 反射的应用示例 作者简介:全栈学习笔记,一个正在努力的人 微信公众号:公众号日更,精彩美文每天推 ...

  2. html之锚点

    我命由我不由天 豆瓣:哪吒之魔童降世 哪吒之魔童降世简述 更新描述或海报 导演: 饺子 编剧: 饺子 / 易巧 / 魏芸芸 主演: 吕艳婷 / 囧森瑟夫 / 瀚墨 / 陈浩 / 绿绮 / 更多... ...

  3. OpenCV-Python ORB(面向快速和旋转的BRIEF) | 四十三

    目标 在本章中,我们将了解ORB的基础知识 理论 作为OpenCV的狂热者,关于ORB的最重要的事情是它来自" OpenCV Labs".该算法由Ethan Rublee,Vinc ...

  4. 在Ubuntu中安装OpenCV-Python | 三

    在本教程中,我们将学习在Ubuntu System中设置OpenCV-Python.以下步骤针对Ubuntu 16.04和18.04(均为64位)进行了测试. 可以通过两种方式在Ubuntu中安装Op ...

  5. ICML 2019论文录取Top100:谷歌霸榜

    [导读]人工智能顶级会议ICML 2019发布了今年论文录取结果.提交的3424篇论文中,录取了774篇,录取率为22.6%,较去年有所降低.从录取论文数量来看,谷歌成为今年最大赢家,紧随其后的是MI ...

  6. POJ - 3468 线段树单点查询,单点修改区间查询,区间修改模板(求和)

    题意: 给定一个数字n,表示这段区间的总长度.然后输入n个数,然后输入q,然后输入a,b,表示查询a,b,区间和,或者输入c 再输入三个数字a,b,c,更改a,b区间为c 思路: 线段树首先就是递归建 ...

  7. iOS 协议分发

    Github:AOMultiproxier.HJProtocolDispatcher 协议实现分发器,能够轻易实现将协议事件分发给多个实现者. 一.AOMultiproxier.h #define A ...

  8. openssl与java(读取加密码的密钥)

    最近在研究java security方面的东西,java自带可以使用各种加密解密算法(rsa,dsa,des3,aes,md5...),但往往一些密钥是第三方给我们的,我们需要用java装载这些密钥然 ...

  9. 检查mysql表碎片化脚本

    #!/bin/sh echo -n "MySQL username: " ; read username echo -n "MySQL password: " ...

  10. rest_framework-分页

    分页 from django.shortcuts import render # Create your views here. from rest_framework import serializ ...