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 サーバーの文字列連結Andの代わりに使用します。&

Out Parameterレコードを返すため、SP から削除します。

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

クエリを作成したくない。

AND状態NOTIN( '1'、 '4')?以来、投稿した最初のコードで!= '1'を使用しましたか?

また、すべてのフィールドを返す「 SELECT * 」を使用する代わりに、必要なフィールドのみを返すことを検討してください。

于 2012-06-12T08:03:58.777 に答える