一:  新建名为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. Codeforces Add on a Tree

    Add on a Tree time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  2. laravel中间件的创建思路分析

    网上有很多解析laravel中间件的实现原理,但是不知道有没有读者在读的时候不明白,作者是怎么想到要用array_reduce函数的? 本文从自己的角度出发,模拟了如果我是作者,我是怎么实现这个中间件 ...

  3. sql数据库(更新)

    安装postgreSQL,遇到的bug:不要选择默认路径,安装到program files,否则连接数据库的时候会出现问题 如图显示数据库连接成功. 1.创建数据库——执行创建数据库的SQL 语句 C ...

  4. POJ旅行商问题——解题报告

    旅行商问题 总时间限制: 1000ms 内存限制: 65536kB 描述 某国家有n(1<=n<=10)座城市,给定任意两座城市间距离(不超过1000的非负整数).一个旅行商人希望访问每座 ...

  5. Conda安装包错误-CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://conda.anaconda.org/r/win-64/repodata.json> Elapsed:

    可能是防火墙问题:conda config --set ssl_verify false 安装 openssl . 换源: cmd输入conda config --add channels r 进入C ...

  6. Spring装配Bean的三种方式+导入和混合配置

    目录 Spring IoC与bean 基于XML的显式装配 xml配置的基本结构 bean实例的三种创建方式 依赖注入的两种方式 构造器注入方式 setter方法注入方式 利用命名空间简化xml 基于 ...

  7. springboot + aop + Lua分布式限流的最佳实践

    整理了一些Java方面的架构.面试资料(微服务.集群.分布式.中间件等),有需要的小伙伴可以关注公众号[程序员内点事],无套路自行领取 一.什么是限流?为什么要限流? 不知道大家有没有做过帝都的地铁, ...

  8. BFS、DFS ——J - Nightmare

    J - Nightmare Ignatius had a nightmare last night. He found himself in a labyrinth with a time bomb ...

  9. 1030 Travel Plan (30分)(dijkstra 具有多种决定因素)

    A traveler's map gives the distances between cities along the highways, together with the cost of ea ...

  10. Java进行二元操作类型转换

    当对两个数值进行二元操作时,先要将两个操作数转换为同一种类型,然后再进行计算. 如果两个操作数中有一个是double类型,另一个操作数就会转换为double类型. 否则,如果其中一个操作数是float ...