zoukankan      html  css  js  c++  java
  • LINQ TO SQL技术

    LINQ TO SQL技术

     

    linq to sql技术使用方便,不会被淘汰原因:第一,考虑到 兼容性问题,微软绝对不会把Linq to SQL从.NET Framework中拿掉的,所以你不用怕现在用 Linq to SQL写的程序以后不能运行了。第二,即使微软不更新Linq to SQL了,但它现在的功 能,已经足够满足我们日常需要了,相比重量级的Entity Framework,如果你只是做一个中小 型项目,并且很注重开发效率和学习曲线,所以选择可爱的Linq to SQL是最佳选择。下面让我来说说Linq to SQL的几大功能实现。

    1、建立数据库

    在使用Linq to SQL前,我们要将相应的数据库建好。在这个Demo中,使用的数据 库是SQLServer 2008。

    我们首先建立一个叫的数据库MyDatabase,及两个数据表:MyTable1、MyTable2和MyTable3,分别表示 公告的分类和公告,建立方法不再赘述。至于两个表的具体字段请参看图1。

    图一

    2、建立Linq to SQL Classes文件

    数据建好后,我们需要建立Linq to SQL Classes文件。这种文件是Linq to SQL框架的主要 文件,后面自动生成的实体类和ORM代码都存在于这个文件中。

    我们打开VS2010,新建一个C# Class Labrary工程,名称为“浏览添加删除修改”,建好后在 工程上单击右键,选择“Add”->“New Item”,在文件类型中选择“Linq to SQL 类”,文件名命名为“DataClasses2.dbml”,如图2所示。

    图二

    3、新建数据库连接和修改数据库连接

    以下图片为修改数据库连接,因为我在之前就已经把这个数据库给连接上了的,现在第二次进入则修改一下连接就可以,如果是新建的一个LINQ TO SQL的话,那么就得新建数据库连接了,要不我们所需要有的步骤一中MyTable1、2、3就不能够拉进来了。

    图三

     

    4、使用Linq to SQL访问数据库

    我们首先新建一个工程。为了简单起见,我们就直接建立一个C# Console Application测试 我们的ORM吧。将这个工程命名为 浏览添加删除修改。当然,建好工程后,不要忘了添加对工 程“浏览添加删除修改”的引用,还要添加对“System.Data.Linq”命名空间的引用。

        4.0头文件引用代码如下:

     1 using System;
     2 using System.Collections.Generic;
     3 using System.ComponentModel;
     4 using System.Data;
     5 using System.Drawing;
     6 using System.Linq;
     7 using System.Text;
     8 using System.Windows.Forms;
     9 using System.Data.Linq;
    10 using System.Data.SqlClient;

        4.1添加功能

     1 
     1  DataClasses1DataContext db = new DataClasses1DataContext();       
     2             MyTable2 t = new MyTable2();
     3             t.学号 = textBox1.Text.Trim().ToString();
     4             t.姓名 = textBox2.Text.Trim().ToString();
     5            
     6             //string 性别 = textBox3.Text.Trim().ToString();
     7             //string 出生日期 = Convert.ToDateTime(dt).ToString("yyyyMMdd"); 
     8             //t.出生日期 =textBox4.Text.Trim().ToString();
     9             //t.性别 = textBox3.Text.Trim().ToString();
    10             t.学院编码 = textBox5.Text.Trim().ToString();
    11             t.成绩 = Convert.ToInt32(textBox6.Text.Trim());
    12             db.MyTable2.InsertOnSubmit(t);
    13             db.SubmitChanges();
    14             //Contacts c1 = new Contacts();
    15 
    16             //c1.ContactName = txtNewContactName.Text;
    17 
    18             //c1.State = txtNewState.Text;
    19             //ltemp.Add(c1);
    20             ////dc.Contacts.InsertOnSubmit(c1);
    21             //dc.SubmitChanges();
      4.2预览功能
    1 DataClasses1DataContext context = new DataClasses1DataContext();
    2             var myQuery1 =
    3                 from table2 in context.MyTable2
    4                 select new { 学号 = table2.学号, 学生姓名 = table2.姓名, 性别 = table2.性别.ToString(), 出生年月日 = table2.出生日期.ToString(), 学校编号 = table2.学院编码.ToString(), 成绩 = table2.成绩 };
    5             if (myQuery1.Count() > 0)
    6             {
    7                 dataGridView1.DataSource = myQuery1;
    8             }

       4.3修改功能

     1 DataClasses1DataContext db = new DataClasses1DataContext();
     2             var query = from table in db.MyTable2
     3                         where table.学号 == textBox1.Text.Trim().ToString()
     4                         select table;
     5             if (query.Count() > 0)
     6             {
     7                 var q1 = query.First();
     8                 q1.学号 = textBox1.Text.Trim().ToString();
     9                 q1.姓名 = textBox2.Text.Trim().ToString();
    10                 //q1.性别 = textBox3.Text.Trim().ToString();
    11                 //string 出生日期 = Convert.ToDateTime(dt).ToString("yyyyMMdd"); 
    12                 q1.学院编码 = textBox5.Text.Trim().ToString();
    13                 q1.成绩 = Convert.ToInt32(textBox6.Text.Trim());
    14                 db.SubmitChanges();
    15             }

        4.4删除功能

     1 DataClasses1DataContext db = new DataClasses1DataContext();
     2             var query = from table in db.MyTable2
     3                         where table.学号 == textBox1.Text.Trim().ToString()
     4                         select table;
     5             if (query.Count() > 0)
     6             { 
     7                 var q1 = query.First();
     8                 db.MyTable2.DeleteOnSubmit(q1);
     9                 db.SubmitChanges();
    10             }

        4.5点击datagridView中一行显示其中数据在lable控件

     1 private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
     2         {
     3          
     4             DataRow row;
     5             row = dt.Rows.Find(dataGridView1.CurrentRow.Cells[0].Value.ToString());
     6             textBox1.Text = this.dataGridView1.CurrentRow.Cells[this.dataGridView1.Columns[0].Index].Value.ToString();
     7             textBox2.Text = this.dataGridView1.CurrentRow.Cells[this.dataGridView1.Columns[1].Index].Value.ToString();
     8             //textBox3.Text = this.dataGridView1.CurrentRow.Cells[this.dataGridView1.Columns[2].Index].Value.ToString();
     9             //textBox4.Text = this.dataGridView1.CurrentRow.Cells[this.dataGridView1.Columns[3].Index].Value.ToString();
    10             //textBox5.Text = this.dataGridView1.CurrentRow.Cells[this.dataGridView1.Columns[4].Index].Value.ToString();
    11             textBox6.Text = this.dataGridView1.CurrentRow.Cells[this.dataGridView1.Columns[5].Index].Value.ToString();
    12         }
    
    
  • 相关阅读:
    uniapp解决图形验证码问题及arraybuffer二进制转base64格式图片
    uni-app图片上传接口联调
    Redis与Mysql双写一致性方案解析(转载)
    python 3 for循环倒序、一组数据参数解包
    python使用for循环打印直角三角形、菱形、乘法口诀,1至100的和、奇数和、偶数和
    使用jmeter做接口测试,简单实例
    python发送无参数get请求
    python的第三方库unittestreport 详细功能使用文档(V1.1.1)-转载
    python 3 发送邮件(转载)
    python使用apscheduler执行定时任务时报错:Run time of job "pr (trigger: cron[minute='25'], next run at: 2021-05-05 22:25:00 CST)" was missed by 0:00:01.185258
  • 原文地址:https://www.cnblogs.com/lvk618/p/3346104.html
Copyright © 2011-2022 走看看