• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

我们将共同携手迎接你的到来!


新的一年
新的开始
新的目标
新的收获

kevin 愛戀 20140103

博客园          联系   管理     
Linq to sql(五):存储过程(四)

使用存储过程新增数据

       存储过程除了可以直接调用之外,还可以用于实体的增删改操作。

还记得在《一步一步学Linq to sql(三):增删改》中创建的留言簿程序吗?

下面我们就来改造这个程序,使用存储过程而不是系统生成的SQL实现实体增删改。

首先,我们创建下面的存储过程

create proc sendmessage

@username varchar(50),

@message varchar(500)

as

insert into tbguestbook

(id,username,posttime,[message],isreplied,reply)

values

(newid(),@username,getdate(),@message,0,'')

       然后,打开留言簿dbml,把存储过程从服务器资源管理器拖拽到设计视图上。

右键点击tbGuestBook实体类,选择配置行为。如下图,为插入操作选择刚才创建的存储过程方法,

并进行参数匹配:


       由于我们的存储过程只接受2个参数,相应修改以下创建留言的按钮处理事件:

    protected void btn_SendMessage_Click(object sender, EventArgs e)

    {

        tbGuestBook gb = new tbGuestBook();

        gb.UserName = tb_UserName.Text;

        gb.Message = tb_Message.Text;

        ctx.tbGuestBooks.Add(gb);

        ctx.SubmitChanges();

        SetBind();

    }

       运行程序后可以发现,在提交修改的时候调用了下面的SQL:

EXEC @RETURN_VALUE = [dbo].[sendmessage] @username = @p0, @message = @p1

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

-- @p1: Input AnsiString (Size = 11; Prec = 0; Scale = 0) [new message]

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

posted on 2010-06-01 13:32  kevin_20131022  阅读(245)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3