从存储过程中获取一些价值 不能
本文关键字:不能 获取 存储 存储过程 过程中 | 更新日期: 2023-09-27 18:36:48
我输入用户名,我想获取所有详细信息作为输出。首先,我用php代码向您展示,
$strSQLUSER="SELECT * FROM User WHERE username='".addslashes($MessageArray[0])."' AND state!='1' AND state!='4'";
$result_user=odbc_exec($conn,$strSQLUSER) or die("Could not connect to database");
$huntername = stripslashes(odbc_result($result_user,"name"));
$huntlicense = stripslashes(odbc_result($result_user,"license"));
然后我使用我的 .net 编码,这是编码的一部分。
private void MooseSeenInput(string MobileNo, string Date, string odd, params Array[] msg_arr)
{
controller = new UnitsController();
DataSet ds = controller.GetUserDetails(username);
if (ds.Tables[0].Rows.Count > 0)
{
//get username & License
string user=ds.Tables[0].Rows[0]["name"].ToString();
string license= ds.Tables[0].Rows[0]["license"].ToString();
}
然后我为此编写了存储过程...但我不适合这个程序,
ALTER PROCEDURE dbo.
@UserName varchar(50),
@License varchar(50) OUTPUT
AS
BEGIN
Select * FROM
Users
Where UserName = @UserName & State ='1' & State= '4'
END
--执行GetSMSUserDetails_SP
另外,在这里我添加了sqldataprovider部分
public override DataSet GetSMSUserDetails(string UserName)
{
return SqlHelper.ExecuteDataset(ViltraConnectionString, GetFullyQualifiedName("GetSMSUserDetails_SP"),UserName);
}
#endregion SMS
在 sql server 中使用 And
而不是 &
for string concat。
从 SP 中删除Out Parameter
,因为您要返回记录。
ALTER PROCEDURE dbo.GetSMSUserDetails_SP
@UserName varchar(50)
AS
BEGIN
Select * FROM
Users
Where UserName = @UserName and State Not IN ('1' ,'4')
END
带有输出参数的 SP。
ALTER PROCEDURE dbo.Getsmsuserdetails_sp @UserName varchar(50),
@License varchar(50) output,
@name varchar(50) output
AS
BEGIN
SELECT TOP 1 @License = License, @name = name
FROM Users
WHERE UserName = @UserName
AND State NOT IN ( '1', '4' )
END
你不希望查询是..
和状态不在 ( '1', '4' ) ? 因为,您在发布的拳头代码中使用了 !='1'?
此外,请考虑仅返回所需的字段,而不是使用返回所有字段的"SELECT *"。