2012-03-13 4 views
-1

この私の私のコード:convert.Toint16(c1.selectscalar(str)== 0)は何ですか?

string str_check; 
    str_check = "select count(*) from tbl_AdminLogin 
       where AdminId='" + txt_admin.Text + "' and Password='" 
       + txt_pswd.Text + "'"; 
    if (Convert.ToInt16(c1.selectScalar(str_check)) == 0) 
    { 
     lbl_errmsg.Text = "Invalid Admin"; 
    } 
    else 
    { 
     Session.Add("adminid", txt_admin.Text); 
     Response.Redirect("AdminHome.aspx"); 
    } 
    ///THIS IS THE WHOLE PROJECT CS// 

この行は何をしますか? :

if(Convert.ToInt16(c1.selectScalar(str_check)) == 0) 
+0

'c1'のデータ型は何ですか? – gideon

+1

あなたはコードを持っています。あなたはc1が何であり、どのselectScalarが返すのか知っています。私たちにもっと何かを見せることができますか? – Steve

+2

-1 'c1'や' selectScalar'は.NETフレームワークの一部ではなく、 'c1'の型と' selectScalar'の型を提供していないので、どのように知っていますか? –

答えて

0

あなたはToInt16のドキュメントを見てみると、あなたがたくさんあることがわかりますが0

にそれを比較することができるように整数にc1.selectScalar(str_check)の戻り値を変換するためにConvert.ToInt16を使用しますすべての種類の型をint16に変換しようとするオーバーロードが発生します。

1

スカラー呼び出しは、慎重な単一の値を返します。あなたのselectScalarコールは、渡された(SQLインジェクションの影響を受けて、おそらく)SQLを実行し、値(この場合は返された行の数)を返します。この呼び出しの戻り値がobjectである場合、この場合は変換する必要があります。この場合はToInt16です。

要するに、コードは行の数がゼロであることを確認しています。つまり、ユーザー名とパスワードが一致しないことを意味します。

0

Convert.ToInt16はオブジェクトを整数に変換します。

文字列を整数に変換するステップを増やすのではなく、文字列を比較することを検討する必要があります。

関連する問題