我输入了用户名&我希望得到所有细节作为输出。首先我用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
- exec GetSMSUserDetails_SP
此外,我添加了sqldataprovider部分
public override DataSet GetSMSUserDetails(string UserName)
{
return SqlHelper.ExecuteDataset(ViltraConnectionString, GetFullyQualifiedName("GetSMSUserDetails_SP"),UserName);
}
#endregion SMS
答案 0 :(得分:2)
在sql server中使用And
代替&
进行字符串连接。
从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 :(得分:1)
您不希望查询为..
AND州不 IN('1','4')?既然你在你发布的第一个代码中使用了!='1'吗?
另外,请考虑仅返回您需要的字段,而不是使用返回所有字段的“ SELECT * ”。