110,561
社区成员
发帖
与我相关
我的任务
分享
public bool AddUser(string FsUI_Account, string FsUI_PassWord, string FsUI_Name, int FnUI_Type, out string Error)
{
var db = GetdbHelper();
db.execType = dbHelper.ExecType.IfRead;
db.IsProc = true;
db.CmdText = "Pr_PRC_AddUser";
db.NeedOutError = true;
db.AddParameter("@FsUI_Account", SqlDbType.NVarChar, FsUI_Account);
db.AddParameter("@FsUI_PassWord", SqlDbType.NVarChar, FsUI_PassWord);
db.AddParameter("@FsUI_Name", SqlDbType.NVarChar, FsUI_Name);
db.AddParameter("@FnUI_Type", SqlDbType.NVarChar, FnUI_Type);
db.Exec();
Error = db.Error;
return db.Result;
}
protected void RegBut_Click(object sender, EventArgs e)
{
string Errors;
string MD5psw = GetMD5(PswBox.Text);
AddInfo AI = new AddInfo();
bool AddUser = AI.AddUser(AccountBox.Text, MD5psw, UserNameBox,1,out Errors);
//这里开始出错,说有无效参数
}
return db.Result ? "" : 捕获的异常;
否则就使用try 将捕获的exception 返回出去
USE [MessageBoard]
GO
/****** Object: StoredProcedure [dbo].[Pr_PRC_AddUser] Script Date: 06/01/2017 15:59:26 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
--Author:张**
--CreatedDate:2017-6-1
--Description: 注册录入用户信息
--Example:
DECLARE @Error VARCHAR(256)
EXEC MessageBoard.dbo.Pr_PRC_AddUser
@FsUI_Account ='zhang',
@FsUI_PassWord ='12345',
@FsUI_Name ='阿萨德',
@FnUI_Type = 3, --输入参数 用户类型 0 表示管理员 1 表示普通用户
@Error = @Error OUTPUT
IF @Error IS NOT NULL SELECT @Error AS [@Error]
*/
ALTER PROCEDURE [dbo].[Pr_PRC_AddUser]
(
@FsUI_Account NVARCHAR(32), --输入参数 账号
@FsUI_PassWord NVARCHAR(32), --输入参数 密码
@FsUI_Name NVARCHAR(64), --输入参数 姓名
@FnUI_Type SMALLINT, --输入参数 用户类型 0 表示管理员 1 表示普通用户
@Error VARCHAR(256)=NULL output --输出错误提示信息
)
AS
SET NOCOUNT ON
--------------------------条件判断
SELECT
@FsUI_Account = ISNULL(@FsUI_Account,''),
@FsUI_PassWord = ISNULL(@FsUI_PassWord,''),
@FsUI_Name = ISNULL(@FsUI_Name,''),
@FnUI_Type = ISNULL(@FnUI_Type,-1)
BEGIN TRY
IF LEN(@FsUI_Account)=0 RAISERROR('账号不能为空',16,10)
IF LEN(@FsUI_PassWord)=0 RAISERROR('密码不能为空',16,10)
IF LEN(@FsUI_Name)=0 RAISERROR('姓名不能为空',16,10)
IF @FnUI_Type<0 OR @FnUI_Type>1 RAISERROR('无效参数[Type]',16,10)
IF EXISTS(SELECT * FROM [MessageBoard].dbo.TMB_B_UserInfo WHERE FsUI_Account = @FsUI_Account) RAISERROR('该账号已被注册',16,10)
IF EXISTS(SELECT * FROM [MessageBoard].dbo.TMB_B_UserInfo WHERE FsUI_Name = @FsUI_PassWord) RAISERROR('该名字已被使用',16,10)
END TRY
---------------------------------------错误检查
BEGIN CATCH
SELECT @Error = CASE WHEN ERROR_NUMBER() <> 50000 THEN '[SystemError]' ELSE '' END + ERROR_MESSAGE();
END CATCH
IF @Error IS NOT NULL RETURN
------------------------------------事物处理
BEGIN TRY
BEGIN TRANSACTION TRAN_AddUser
---
INSERT INTO [MessageBoard].dbo.TMB_B_UserInfo(
FsUI_Account,
FsUI_PassWord,
FsUI_Name,
FnUI_Type)
VALUES(
@FsUI_Account,
@FsUI_PassWord,
@FsUI_Name,
@FnUI_Type)
---
COMMIT TRANSACTION TRAN_AddUser
END TRY
----------------------------检查是否出错
BEGIN CATCH
ROLLBACK TRANSACTION TRAN_AddUser
SELECT @Error = CASE WHEN ERROR_NUMBER() <> 50000 THEN '[SystemError]' ELSE '' END + ERROR_MESSAGE();
END CATCH
------------------------查询成功录入的用户信息
IF @Error IS NULL
BEGIN
SELECT * FROM [MessageBoard].dbo.TMB_B_UserInfo WHERE FsUI_Account=@FsUI_Account
END
--------------------------
SET NOCOUNT OFF
db.AddParameter("@FnUI_Type", SqlDbType.NVarChar, FnUI_Type);