得到“;没有为一个或多个必需参数给定值&”;
本文关键字:参数 一个 得到 | 更新日期: 2023-09-27 18:25:19
我已经创建了一个注册页面,并将其链接到Access数据库,现在我正试图使用Db上存储的信息在登录页面上使用,但一直收到"一个或多个必需参数没有给定值。"错误。
protected void loginButtn_Click(object sender, EventArgs e)
{
string connect = @"Provider=Microsoft.Jet.OleDb.4.0;Data Source=C:'Users'Wisal'Documents'Visual Studio 2012'WebSites'WebSite3'registration-Db.mdb";
string query = "Select Count(*) From client Where [name] = ? And surname = ? and [password] = ?";
int result = 1;
using (OleDbConnection conn = new OleDbConnection(connect))
{
using (OleDbCommand cmd = new OleDbCommand(query, conn))
{
cmd.Parameters.AddWithValue("", nameloginBox.Text);
cmd.Parameters.AddWithValue(" ", snameloginBox.Text);
cmd.Parameters.AddWithValue(" ", passwrdloginBox.Text);
conn.Open();
Session["User"] = nameloginBox.Text;
result = (int)cmd.ExecuteScalar();
}
}
if (result > 0)
{
Response.Redirect("general.aspx");
}
else
{
Literal1.Text = "Invalid credentials";
}
}
正如@Rob所评论的(击败我),您正在传递3个没有名称的参数。您的代码应该是这样的,这样Access就知道什么参数对应什么变量。
string query = "Select Count(*) From client Where Username = ? And UserPassword = ?";
int result = 1;
using (OleDbConnection conn = new OleDbConnection(connect))
{
using (OleDbCommand cmd = new OleDbCommand(query, conn))
{
cmd.Parameters.AddWithValue("Username", snameloginBox.Text); //username parameter
cmd.Parameters.AddWithValue("UserPassword", passwrdloginBox.Text); //userpassword parameter
conn.Open();
Session["User"] = nameloginBox.Text;
result = (int)cmd.ExecuteScalar();
}
}
有关向Access查询传递参数的更多信息,请点击此处。