zoukankan      html  css  js  c++  java
  • Linq to SQL 小结

    前天开始看这方面的资料,虽然看了网上对比 sql和linq的速度,万条数据可能要慢1/4左右的数度,但是介于的方便,还是学了

    首先看看linq的基本语法:

    FROM XX IN DATASOURCE 

    WHERE 条件表达式

    ORDERBY XXXXX

    SELECT XX

    和T-sql语句很像,只是说顺序有点不一样罢了

    我的是VS2012的环境,在项目中添加Linq to sql 的类,后缀是dbml,然后把你的数据库中的表直接拖到界面上就是,对,就是直接拖就可以了,这样好像所谓的ORM(对象关系映射)层就弄好了

    这样之后我们就可以通过linq to sql 很简单的去操作数据库了

    vs会自动生成一个datacontext的类(又成为上下文类),(根据dbml文件的名字生成的)我这边是linq_notedatacontext

    首先我们先来做查询

     linq_noteDataContext l = new linq_noteDataContext();

    实例化datacontext

      linq_noteDataContext l = new linq_noteDataContext ();
                var results = from data in l.note
                              where data.title = "我的祖国"
                              select data;
                foreach (var d in results)
                    Response.Write(d.ToString());

    插入操作

    //插入数据库
               
                db_product_information pdd = new db_product_information(); //实例化你数据库中的一张表,额。。。应该称之为实例化吧
                pdd.Product_id = "96";    
                pdd.Product_name = "hrx";
                pdd.Product_sum  = 199;
                pdd.support_id = 1;
                productDataContext pd = new productDataContext(); //datacontext
                pd.db_product_information.InsertOnSubmit(pdd); //插入操作
                pd.SubmitChanges();//更新到数据库,这个动作,不管是插入删除,还是更新都要

    修改操作

    //修改数据
                productDataContext pd = new productDataContext();
                var result = from data in pd.db_product_information
                             where data.support_id == 1
                             select data;
                foreach (var i in result)
                {
                    i.support_id = 2;
                }
                pd.SubmitChanges();

    删除操作

    //删除数据
                productDataContext pd = new productDataContext();
                var result = from data in pd.db_product_information
                             where data.Product_name == "hrx"
                             select data;
                foreach (var i in result)
                {
                    pd.db_product_information.DeleteOnSubmit(i);
                    pd.SubmitChanges();
                }

    然后是使用存储过程

    同样,我们把存储过程直接拖到dbml设计器上

    vs会自动在datacontext派生类里面生成相关的存储过程的调用方法:

    我们依然就是直接用就可以了

    //使用存储过程
                productDataContext pd = new productDataContext();
                var result = from data in pd.sp_product() //sp_product是我的存储过程的名字
                             select data;
                foreach (var i in result)
                {
                    listBox1.Items.Add(i.Product_id .ToString()+" "+i.Product_name .ToString ()+" "+i.Product_sum .ToString ()+" "+i.support_id .ToString ());
                }
                

    这些操作我想做中小项目应该是够了吧?

    还有延迟加载什么的我看不懂。。

    年轻过得闲,以后被人嫌... 年轻累不死....
  • 相关阅读:
    测试开发知识体系
    渗透测试全套教程(从原理到实战)
    解决edittext输入多行可以滑动的问题
    SharedPreferences实现自动登录记住用户名密码
    listview当选中某一个item时设置背景色其他的不变
    转 -android:程序无响应,你该如何定位问题?
    区分listview的item和Button的点击事件
    转--2014年最新810多套android源码2.46GB免费一次性打包下载
    转-android 支付宝SDK集成
    转-封装网络请求库,统一处理通用异常 (基于volley网络请求库)
  • 原文地址:https://www.cnblogs.com/hrx-star/p/3148835.html
Copyright © 2011-2022 走看看