三层中调用存储过程问题,请教高手,急!
本人菜鸟,新做了个项目,以前没用三层,这个项目需要用,建好了DAL,Models,BLL,UI,在DAl里写了一个执行类DBHelper类,但是遇到一个问题,在调用存储过程时,不通用,所以请教各位了。下面是存储过程代码:
ALTER PROCEDURE [dbo].[sp_usertest]
@type NCHAR(1),--1:添加 2:删除 3:修改 默认:查询
@userId INT ,
@userName NVARCHAR(50),
@userPass NVARCHAR(50),
@userSex NVARCHAR(50)
AS
BEGIN
DECLARE @err int
SET @err=0
BEGIN TRANSACTION UserTest
IF(@type='1')
BEGIN
BEGIN
INSERT INTO UserInfo(userName,userPass,userSex) VALUES(@userName,@userPass,@userSex)
END
SET @err=@err+@@ERROR
END
ELSE IF(@type='2')
BEGIN
BEGIN
DELETE UserInfo WHERE userId=@userId
END
SET @err=@err+@@ERROR
END
ELSE IF(@type='3')
BEGIN
BEGIN
UPDATE UserInfo SET userName=@userName,userPass=@userPass WHERE userId=@userId
END
SET @err=@err+@@ERROR
END
ELSE
BEGIN
BEGIN
SELECT * FROM UserInfo
END
SET @err=@err+@@ERROR
END
IF(@err=0)
COMMIT TRANSACTION UserTest
ELSE
ROLLBACK TRANSACTION UserTest
END
需要在type不同时,执行不同sql语句,我需要一个通用的执行方法就好了,谢谢各位 --------------------编程问答-------------------- za在线等,帮下我,谢谢了~ --------------------编程问答-------------------- 没有人吗? --------------------编程问答-------------------- 不通用是什么,出什么错啊?你这样不管执行什么操作都要传五个参数进来?弄个默认的。不然每个都得传。不传就报错。 --------------------编程问答-------------------- 我是根据type判断啊 --------------------编程问答-------------------- 就是郁闷了,不 知道怎么 处理~~~ --------------------编程问答-------------------- 给那5个参数设置默认值 --------------------编程问答-------------------- 具体怎么设置呀 --------------------编程问答-------------------- 把你的存储过程的那参数修改下就好
ALTER PROCEDURE [dbo].[sp_usertest]
@type NCHAR(1),--1:添加 2:删除 3:修改 默认:查询
@userId INT=0 ,
@userName NVARCHAR(50)='',
@userPass NVARCHAR(50)='',
@userSex NVARCHAR(50)=''
这些默认为空, --------------------编程问答-------------------- 太长了,
网上通用的很多 --------------------编程问答-------------------- 谢谢了~ --------------------编程问答-------------------- 实在不行 我发个通用DB类给你吧 我QQ 76477140 --------------------编程问答--------------------
直接赋值呗
@userId INT = 1,
@userName NVARCHAR(50) = 'aaa'
你传值了,就使用传进来的值,没有使用默认值
补充:.NET技术 , ASP.NET