zoukankan      html  css  js  c++  java
  • Linq to sql(五):存储过程(六)

    使用存储过程更改数据

           创建如下存储过程:

    create proc replymessage

    @id uniqueidentifier,

    @reply varchar(500)

    as

    update tbguestbook set reply=@reply,isreplied=1 where id=@id

           由于更新的时候并不会更新主键,所以我们可以为两个参数都指定当前值。回复留言后可以跟踪到下面的SQL

    EXEC @RETURN_VALUE = [dbo].[replymessage] @id = @p0, @reply = @p1

    -- @p0: Input Guid (Size = 0; Prec = 0; Scale = 0) [67a69d0f-a88b-4b22-8939-fed021eb1cb5]

    -- @p1: Input AnsiString (Size = 6; Prec = 0; Scale = 0) [464456]

    -- @RETURN_VALUE: Output Int32 (Size = 0; Prec = 0; Scale = 0) []

           假设有这样一种应用,我们需要修改留言簿中不合法的用户名:

    create proc modiusername

    @oldusername varchar(50),

    @newusername varchar(50)

    as

    update tbguestbook set username=@newusername where username = @oldusername

           有个网友起名叫“admin”,我们要把所有这个名字修改为“notadmin”。那么,可以如下图设置update操作:


           然后运行下面的测试代码:

            var messages = from gb in ctx.tbGuestBooks

                           select gb;

            foreach (var gb in messages)

            {

                if(gb.UserName == "admin")

                    gb.UserName = "notadmin";

            }

           运行程序后能跟踪到下面的SQL

    SELECT [t0].[ID], [t0].[UserName], [t0].[PostTime], [t0].[Message], [t0].[IsReplied], [t0].[Reply]

    FROM [dbo].[tbGuestBook] AS [t0]

     

    EXEC @RETURN_VALUE = [dbo].[modiusername] @oldusername = @p0, @newusername = @p1

    -- @p0: Input AnsiString (Size = 5; Prec = 0; Scale = 0) [admin]

    -- @p1: Input AnsiString (Size = 8; Prec = 0; Scale = 0) [notadmin]

    -- @RETURN_VALUE: Output Int32 (Size = 0; Prec = 0; Scale = 0) []

           到这里,你应该能明白当前值和原始值的含义了吧。

  • 相关阅读:
    洛谷P3620 [APIO/CTSC 2007] 数据备份
    洛谷P2744 量取牛奶
    洛谷P1560 蜗牛的旅行
    luogu P1776 宝物筛选_NOI导刊2010提高(02)
    luogu P1020 导弹拦截
    luogu P2015 二叉苹果树
    luogu P1137 旅行计划
    树形dp瞎讲+树形dp基础题题解
    luogu P1252 马拉松接力赛 P1803 凌乱的yyy / 线段覆盖
    luogu P1196 [NOI2002]银河英雄传说
  • 原文地址:https://www.cnblogs.com/kevin2013/p/1749070.html
Copyright © 2011-2022 走看看