在C#中在.CS页面执行返回值为字符串的存储过程,代码怎么写的:
存储过程如下:
CREATE PROC Login
@userName varchar(20),
@password varchar(20)
AS
IF NOT EXISTS(SELECT * FROM SysUser WHERE UserName = @userName)
RETURN -1
IF NOT EXISTS(SELECT * FROM SysUser WHERE UserName = @userName AND PWD = @password)
RETURN 1
RETURN 0
GO
平时我执行的存储过程一般都是返回一个表,也就说我们得到的的是一个DataSet.
如果存储过程返回的不是一个表,是一个字符串,
就问代码又怎么写啦
存储过程如下:
CREATE PROC Login
@userName varchar(20),
@password varchar(20)
AS
IF NOT EXISTS(SELECT * FROM SysUser WHERE UserName = @userName)
RETURN -1
IF NOT EXISTS(SELECT * FROM SysUser WHERE UserName = @userName AND PWD = @password)
RETURN 1
RETURN 0
GO
平时我执行的存储过程一般都是返回一个表,也就说我们得到的的是一个DataSet.
如果存储过程返回的不是一个表,是一个字符串,
就问代码又怎么写啦
cmd.CommandText = "sp";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection=...
int resultInt = (int)cmd.ExecuteScalar();//返回一个数字
//返回字符串string resultString = cmd.ExecuteScalar().ToString();
方法2:LZ经常返回dataset,那也没关系,ds.Table[0].Rows[0][0] 这样也可以取到返回的第一个表的第一行第一列的第一个值
CREATE PROC Login
@userName varchar(20),
@password varchar(20)
AS
IF NOT EXISTS(SELECT * FROM SysUser WHERE UserName = @userName)
select -1
IF NOT EXISTS(SELECT * FROM SysUser WHERE UserName = @userName AND PWD = @password)
select 1
GO
返回结果同样是表,只不过是一行一列的表而已。。
ParameterDirection.ReturnValue