我想使用asp.net为学校项目创建一个带有Access数据库的登录页面。我没有真正的C#经验所以我正在做不同的教程。
protected void Login1_Click(object sender, EventArgs e)
{
string connect = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=http://tmti-16.ict-lab.nl/database/ek2012.mdb";
string query = "Select Count(*) From users Where username = ? And userpassword = ?";
int result = 0;
using (OleDbConnection conn = new OleDbConnection(connect))
{
using (OleDbCommand cmd = new OleDbCommand(query, conn))
{
cmd.Parameters.AddWithValue("", UserName.Text);
cmd.Parameters.AddWithValue("", Password.Text);
conn.Open();
Session["User"] = UserName.Text;
result = (int)cmd.ExecuteScalar();
}
}
if (result > 0)
{
Response.Redirect("index.aspx");
}
else
{
Literal1.Text = "Invalid credentials";
}
}
在Access中,我将表''users'包含'username'和'userpassword'行。
答案 0 :(得分:3)
您遇到的问题几乎肯定与您的连接字符串的数据源段有关:
string connect = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=http://tmti-16.ict-lab.nl/database/ek2012.mdb"
Access mdb文件应位于本地路径上。这可以是您的本地文件系统上运行Web应用程序的帐户的任何位置,因为它有权访问,但实际上,ASP.Net实际上有更好的位置放置这些文件,App_Data folder。
如果将mdb文件放在此文件夹中,则连接字符串将变为:
string connect = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=|DataDirectory|ek2012.mdb"
App_Data文件夹的内容不会提供给客户端,因此这是放置数据的安全位置。使用它也是一个好主意,因为它可以保存项目中的数据;通常,人们会将数据相关文件放在Web根目录之外的文件系统文件夹中,这意味着您在将网站移动到另一台计算机时必须记住这种依赖关系。
访问App_Data中的文件时可能遇到的常见问题通常与权限有关;您正在运行代码的用户将需要此目录中的读写权限才能修改mdb文件。这将在"Configuring Permissions for an Access Database" in this MSDN Article部分中介绍。