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(objectsender, 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) []


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值