2014-01-18 134 views
0

我试图为使用ms访问数据库的网站创建登录表单。我正在使用visual studio 2010 c#并访问2013.出于某种原因,我无法登录。我真的很陌生,因此我非常感谢所有帮助。无法登录网站

数据层:

public class DataConnector  
{   
    protected OleDbDataAdapter DataAdapter1 = new OleDbDataAdapter();   
    public string ErrorMessage = ""; 

    public DataConnector(string ConnectionString) 
    { 
     OleDbConnection Connection1 = new OleDbConnection(ConnectionString); 
     this.DataAdapter1.SelectCommand = new OleDbCommand("", Connection1); 
     this.DataAdapter1.InsertCommand = new OleDbCommand("", Connection1); 
    } 
    public DataTable DataSelect(string query) 
    { 
     DataTable dt = new DataTable(); 
     try 
     { 
      DataAdapter1.SelectCommand.CommandText = query; 
      DataAdapter1.SelectCommand.Connection.Open(); 
      DataAdapter1.Fill(dt); 
      DataAdapter1.SelectCommand.Connection.Close(); 
      ErrorMessage = ""; 
     } 
     catch(Exception err) 
     { 
      ErrorMessage = err.Message; 
      DataAdapter1.SelectCommand.Connection.Close(); 
     } 
     return dt; 
    } 
    public int DataInsert(string query) 
    { 
     int Result = 0; 
     try 
     { 
      DataAdapter1.InsertCommand.CommandText = query; 
      DataAdapter1.InsertCommand.Connection.Open(); 
      Result = DataAdapter1.InsertCommand.ExecuteNonQuery(); 
      DataAdapter1.InsertCommand.Connection.Close(); 
      ErrorMessage = ""; 
      return Result; 
     } 
     catch (Exception err) 
     { 
      ErrorMessage = err.Message; 
      DataAdapter1.InsertCommand.Connection.Close(); 
      return 0; 
     } 

    } 
    public int DataUpdate(string query) 
    { 
     return DataInsert(query); 
    } 
    public int DataDelete(string query) 
    { 
     return DataInsert(query); 
    } 
} 

Default.aspx.cs:

public partial class Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 

    protected void btnLogin_Click(object sender, EventArgs e) 
    { 

     DataLayer.DataConnector dat = new DataLayer.DataConnector("Provider=Microsoft.ACE.OLEDB.12.O;"+"Data Source='"+Server.MapPath("site_database.accdb")+"'; Persist Security Info=False;"); 
     DataTable dt = dat.DataSelect("select UserID from tbl_login where Username = '" + txtUsername.Text + "' and Password = '"+ txtPassword.Text +"' "); 
     if (dt.Rows.Count > 0) 
     { 
      Response.Redirect("members_area.aspx"); 
     } 
     else 
      lblerror.Text = "Login failed"; 

    } 
} 

我没有得到任何错误,我只是不明白。当我尝试登录时,它只停留在default.aspx页面上。

+0

如果您对我们有任何的附加信息,如异常,这是真的很难找出是什么出错了。如果您还没有尝试过,请尝试在您的btnLogin_Click事件中放置一个断点。这可能有助于你理解失败。 – avb

回答

0

问题的一部分很可能是PASSWORD是Access SQL中的reserved word,所以如果您想在查询中将它用作字段名称,则应该用方括号括起来,例如,

... WHERE Username = ... AND [Password] = ... 

还要注意的是,你真的应该使用的情况下,一个参数化查询Little Bobby Tables尝试登录。