1

C# で構築された Web サイトで単純なログインを作成しようとしていますが、データベースに接続できません。postbackurl のフォームのプロパティで、ログイン後にどこに移動する必要があるかを定義すると ( /inicio.aspx)、アプリはユーザーを送信せずに送信しますそのユーザーとパスが存在するかどうかを確認します。それを入れないと何も起こりません。

私のクラスでは:

public DataSet sqlLogin(string usuario, string pass)//SOLO SE OCUPA 
{
    //SEOCUPA DATASERT YA QE NO SIRVE DATABALE Y EL DATASET SE LLENA CON ESE DATATABLE 
    string stSql = "select * from usuarios where usuario='"+usuario+"' and
pass='"+pass+"'";
    Bd miBd = new Bd();
    DataTable dt = miBd.sqlSelect(stSql);
    DataSet ds = new DataSet();
    ds.Tables.Add(dt);
    return ds;
}

私のフォームで(ボタンで):

protected void btnLogin_Click(object sender, EventArgs e)
{
    ClUsuario login = new ClUsuario();
    login.sqlLogin(txtUsuario.Text, txtPass.Text);

    try
    {
        Response.Redirect("/Inicio.aspx");
    }
    catch
    {
        lblMsg.Text = "usuario/password no validos";
    }
}
4

2 に答える 2

1

コードをこのコードに置き換える必要があります

protected void btnLogin_Click(object sender, EventArgs e)
{
    ClUsuario login = new ClUsuario();
    bool isAuthenticated = login.sqlLogin(txtUsuario.Text, txtPass.Text);
    if (isAuthenticated)
    {
        Response.Redirect("/Inicio.aspx");
    }
    else    
    {
        lblMsg.Text = "usuario/password no validos";
    }
}


And return bool in your sqlLogin

try with this code 

if(dt.Rows.Count > 0)
{
   return true;
} 
return false;
于 2012-06-29T21:05:27.990 に答える
1

これを試して:

try
{
    var ds = login.sqlLogin(txtUsuario.Text, txtPass.Text);
    if(ds.Tables[0].rows.count > 0) {
      Response.Redirect("/Inicio.aspx");
    }
    else {lblMsg.Text = "usuario/password no validos";}

}
catch
{
    lblMsg.Text = "Error Occurred!";
}

また、クエリで sql パラメータを使用してみてください。

于 2012-06-29T21:07:43.183 に答える