zoukankan      html  css  js  c++  java
  • 5,存储过程

    概要:

           LinQto SQL的使用非常方便。上个留言板的例子中,我们知道只要添加一个LinQ to SQL classes文件,只要将表拖进.dbml文件,vs就会帮你生成一系列的文件。同样,我们也可以将存储过程拖进.dbml文件。Vs也会帮你生成相应的方法,和新的字段。若你不想让存储过程生成新的字段,ReturnType中你可以选择数据库中表的字段类。

    内容:

           Vs帮你生成的存储过程代码:

                  [global::System.Data.Linq.Mapping.FunctionAttribute(Name="dbo.proc_SelectAdmin")]

                  publicISingleResult<Admin> proc_SelectAdmin()

                  {

                         IExecuteResultresult = this.ExecuteMethodCall(this, ((MethodInfo)

    (MethodInfo.GetCurrentMethod())));

                         return((ISingleResult<Admin>)(result.ReturnValue));

                  }

    此次学习的表Admin:      

    Login          nchar(10)   Checked

    PWD          nchar(10)   Checked

             User表:

    Login          nchar(10)   Checked

    PWD          nchar(10)   Checked

    存储过程:

             ALTER PROC [dbo].[proc_DeleUserByLogin]

    @Login nchar(10)

    AS

             delete dbo.[User] where Login=@Login

             ALTER PROC [dbo].[proc_InsertUser]

    @Login nchar(10),

    @PWD nchar(10)

    AS

             insert into dbo.[User]values(@Login,@PWD)

             ALTER PROC [dbo].[proc_SelectAdmin]

    AS

             SELECT * FROM dbo.Admin

             ALTER PROC[dbo].[proc_SelectAdminAndUser]

    AS

             SELECT * FROM dbo.Admin

             SELECT * FROM dbo.[User]

             ALTER PROC [dbo].[proc_SelectCountAdminByLogin]

    @Login nchar(10),

    @count int output

    AS

             set @count=(SELECT count(*) FROMdbo.Admin where Login=@Login)

             ALTER PROC[dbo].[proc_SelectStringAdminByLogin]

    @Login nchar(10)

    AS

             if exists (SELECT 1 FROM dbo.Adminwhere Login=@Login)

             return 123

             else

             return 456

             ALTER PROC [dbo].[proc_UpdateAdmin]

    @oldLoginnchar(10),

    @newLogin nchar(10)

    AS

             update dbo.Admin set Login=@newLoginwhere Login=@oldLogin

    1, 一般查询的存储过程

        LQDemo5DBDataContext ctx = newLQDemo5DBDataContext("连接");

        GridView1.DataSource =ctx.proc_SelectAdmin();

    GridView1.DataBind();

    或者我们使用Linq to object查询存储过程的结果:

    var ad = from c in ctx.proc_SelectAdmin() where c.Login=="admin" select c;

    2, 带参数

    int? m=-1;//表示可空的int类型,System.Nullable<T>的简写

    ctx.proc_SelectCountAdminByLogin("admin",ref m);

    Response.Write(m);

    3, 带返回值

    Response.Write(ctx.proc_SelectStringAdminByLogin("admin"));

    4, 多结果集

            //[global::System.Data.Linq.Mapping.FunctionAttribute(Name="dbo.proc_SelectAdminAndUser")]

            //publicISingleResult<proc_SelectAdminAndUserResult> proc_SelectAdminAndUser()

            //{

            //   IExecuteResult result = this.ExecuteMethodCall(this,((MethodInfo)(MethodInfo.GetCurrentMethod())));

            //   return((ISingleResult<proc_SelectAdminAndUserResult>)(result.ReturnValue));

            //}

    修改为:

           [Function(Name="dbo.proc_SelectAdminAndUser")]

            [ResultType(typeof(Admin))]

            [ResultType(typeof(User))]

            public IMultipleResultsproc_SelectAdminAndUser()

            {

                IExecuteResult result=this.ExecuteMethodCall(this,((MethodInfo)(MethodInfo.GetCurrentMethod())));

                return (IMultipleResults)(result.ReturnValue);

            }

                  使用的时候:

                         varrusult = ctx.proc_SelectAdminAndUser();

               var admin = rusult.GetResult<Admin>();

               var user = rusult.GetResult<User>();

                  注意:系统有时候会自动修改回原内容。

    5, 添加数据

    //语句和存储过程两种添加

    //User us = new User();

    //us.Login="usersss";

    //us.PWD = "pwdpwd";

    //ctx.Users.InsertOnSubmit(us);//没有主键,代码自带增删改不能用

    ctx.proc_InsertUser("useraaa","zxxcz");

      这里下载源码

  • 相关阅读:
    js 注意
    JS学习大作业-Excel
    js继承
    转载:margin外边距合并问题以及解决方式
    CSS属性选择器和部分伪类
    HTML使用CSS样式的方法
    link元素 rel src href属性
    【2020.01.06】SDN大作业
    【2019.12.11】SDN上机第7次作业
    【2019.12.04】SDN上机第6次作业
  • 原文地址:https://www.cnblogs.com/yaoge/p/1816723.html
Copyright © 2011-2022 走看看