C# 我只是想知道如何使用MSAccess数据库中的其他数据显示忘记的密码
这里是我运行程序时出错的地方。面板将显示向用户问好,然后显示他/她忘记的通行证C# 我只是想知道如何使用MSAccess数据库中的其他数据显示忘记的密码,c#,ms-access-2013,C#,Ms Access 2013,这里是我运行程序时出错的地方。面板将显示向用户问好,然后显示他/她忘记的通行证 private void RevealForgetPass_Click(object sender, EventArgs e) { string connectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/Users/rallf/Documents/dctcaccount.mdb";
private void RevealForgetPass_Click(object sender, EventArgs e)
{
string connectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/Users/rallf/Documents/dctcaccount.mdb";
OleDbConnection cn = new OleDbConnection(connectString);
cn.Open();
string selectString = "select * from tbl_account where [Username]=@user and [Secret_Question]=@sq and [Secret_Answer]=@sa and [Pin]=@pin";
OleDbCommand cmd = new OleDbCommand(selectString, cn);
cmd.Parameters.Add(new OleDbParameter("@user", txtbox_username.Text.ToLower()));
cmd.Parameters.Add(new OleDbParameter("@sq", cmbox_secquestion.Text));
cmd.Parameters.Add(new OleDbParameter("@sa", txtbox_secretans.Text));
cmd.Parameters.Add(new OleDbParameter("@pin", txtbox_pin.Text));
cmd.CommandText = selectString;
OleDbDataReader reader = cmd.ExecuteReader();
int count = 0;
while (reader.Read())
{
count = count + 1;
}
if (count == 1)
{
panel2.Visible = true;
lbl_username.Text = reader["Username"].ToString();
错误是这样的:
“System.InvalidOperationException”类型的未处理异常
发生在System.Data.dll中其他信息:不存在的数据
行/列
我尝试了包括reader.GetStringreader.GetOrdinal的不同方法
它们也不起作用。不存储密码!只需存储他们的散列
然后,如果需要,让用户创建一个新密码
要解决错误,请执行以下操作:
您必须在loopwhile reader.Read.中提取数据。在循环之后,为时已晚,因为您到达了loopbdatareader的末尾,并且无法仅向前返回
整数计数=0;
边读边读
{
计数=计数+1;
字符串username=reader.item[username].ToString;
string password=reader.item[password].ToString;
}
lbl_password.Text = reader["Password"].ToString();
}
else
{
MessageBox.Show("Invalid Account!");
cn.Close();
}
}