public int Login(Assess.Model.PersonDatum model)
{
Database db = DatabaseFactory.CreateDatabase();
DbCommand dbcommand = db.GetStoredProcCommand("usp_PersonLogin");
db.AddOutParameter(dbcommand, "ReturnValue", DbType.Int32, 4);
db.AddOutParameter(dbcommand, "RatioValue", DbType.Int32, 4);
db.AddInParameter(dbcommand, "DepartMent", DbType.AnsiString, model.Section);
db.AddInParameter(dbcommand, "LoginName", DbType.AnsiString, model.Name);
db.AddInParameter(dbcommand, "LoginPWD", DbType.AnsiString, model.PersonPWD);
db.ExecuteNonQuery(dbcommand); return (int)db.GetParameterValue(dbcommand, "ReturnValue");
}如何返回 RatioValue 值 在c# 如何获取?
{
Database db = DatabaseFactory.CreateDatabase();
DbCommand dbcommand = db.GetStoredProcCommand("usp_PersonLogin");
db.AddOutParameter(dbcommand, "ReturnValue", DbType.Int32, 4);
db.AddOutParameter(dbcommand, "RatioValue", DbType.Int32, 4);
db.AddInParameter(dbcommand, "DepartMent", DbType.AnsiString, model.Section);
db.AddInParameter(dbcommand, "LoginName", DbType.AnsiString, model.Name);
db.AddInParameter(dbcommand, "LoginPWD", DbType.AnsiString, model.PersonPWD);
db.ExecuteNonQuery(dbcommand); return (int)db.GetParameterValue(dbcommand, "ReturnValue");
}如何返回 RatioValue 值 在c# 如何获取?
如下
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
CREATE PROCEDURE [dbo].[test]
@number int
AS
BEGIN
declare @a int
declare @b int
if @number=1
begin
set @a= 11
set @b=101
end
if @number=2
begin
set @a= 22
set @b=202
end
if @number=3
begin
set @a= 33
set @b=303
end
select @a,@b
ENDexec test 2
返回
22 202
{
Database db = DatabaseFactory.CreateDatabase();
DbCommand dbcommand = db.GetStoredProcCommand("usp_PersonLogin");
db.AddOutParameter(dbcommand, "ReturnValue", DbType.Int32, 4);
db.AddOutParameter(dbcommand, "RatioValue", DbType.Int32, 4);
db.AddInParameter(dbcommand, "DepartMent", DbType.AnsiString, model.Section);
db.AddInParameter(dbcommand, "LoginName", DbType.AnsiString, model.Name);
db.AddInParameter(dbcommand, "LoginPWD", DbType.AnsiString, model.PersonPWD);
db.ExecuteNonQuery(dbcommand); ratioValue = (int)db.GetParameterValue(dbcommand, "RatioValue");//在return之前将out参数赋值 return (int)db.GetParameterValue(dbcommand, "ReturnValue");
}
但c# 好像只能有一个return
而且在 .cs 文件里面取值是这样子的int aa = blllogin(modelLogin)这里的modellogin
modelLogin.deparment = 'test';
modelLogin.LoginName = 'test';
modelLogin.LoginPWD = strLoginPWD;我是想取回两个返回参数的值
我的意思就是你在你的存储过程当中定义两个变量。
然后select这两个变量。
就相当与你返回了这两个值
declare @a int
declare @b int
if @number=1
begin
你的处理过程
set @a= 第一个返回值
set @b=第二个返回值
end
select @a,@b
这样让存储过程返回一张表。
你分别取内容就可以了。
我是想问在dal 中如何写返回两个值楼上的,两个变量放在一起,用逗号,这样子是不行的。
@number int out,
@number1 int out
AS
BEGIN
set @number=1
set @number1=2
END
你这样试试
@number int out,
@number1 int out
AS
BEGIN
select @number=1
select @number1=2
END
或这样试试
{
inValues = "1";
return = "2";
}GOOGLE一下C# OUT就懂了~~
引用之前先定义int类型变量int mmm;int nnn = Login(model,out mmm);之后结果是 : mmm=ratioValue; nnn=ReturnValue;//这两句不用再写了,前面已经完成了赋值工作,这里只是说明mmm和nnn的状态