0

我输入用户名 & 我想得到所有细节作为输出。首先我用 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
4

2 回答 2

2

在 sql server 中使用And代替&字符串 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 
于 2012-06-12T07:48:50.630 回答
1

你不希望查询是..

声明不在('1','4')?因为,您在发布的第一个代码中使用了!='1' ?

此外,请考虑仅返回您需要的字段,而不是使用返回所有字段的“ SELECT * ”。

于 2012-06-12T08:03:58.777 回答