Я хочу сменить пароль, который был сохранен в db, но моя доза кода не работает. что не так? Я всегда вижу последнее сообщение:Почему мой пароль не изменен?
unable to connect database
public partial class pws : System.Web.UI.Page
{
static string strcon = (System.Web.Configuration.WebConfigurationManager.ConnectionStrings["strcon"].ConnectionString);
protected void Page_Load(object sender, EventArgs e)
{
}
private void ShowPopUpMsg(string msg)
{
StringBuilder sb = new StringBuilder();
sb.Append("alert('");
sb.Append(msg.Replace("\n", "\\n").Replace("\r", "").Replace("'", "\\'"));
sb.Append("');");
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "showalert", sb.ToString(), true);
}
protected void btnInsert_Click(object sender, EventArgs e)
{
try {
SqlConnection db = new SqlConnection(strcon);
db.Open();
string strId = string.Empty;
string strusername = string.Empty;
string OLdpassword = string.Empty;
SqlCommand cmd;
cmd = new SqlCommand("SELECT * FROM login WHERE login_username [email protected]_username ", db);
cmd.Parameters.AddWithValue("login_username", txtOldUsername.Text);
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
cmd.Dispose();
cmd = null;
db.Close();
db.Open();
SqlDataReader DR;
DR = cmd.ExecuteReader();
if (DR.Read())
{
strId = DR["login_id"].ToString();
strusername = DR["login_username"].ToString();
OLdpassword = DR["login_Password"].ToString();
}
db.Close();
if (OLdpassword == txtOldPass.Text)
{
db.Open();
string Command = "Update login Set login_Password= @login_Password WHERE [email protected]_username";
SqlCommand cmdIns = new SqlCommand(Command, db);
cmdIns.Parameters.AddWithValue("@login_Password ", txtNewPass.Text);
cmdIns.Parameters.AddWithValue("@login_username ", txtOldUsername.Text);
cmdIns.ExecuteNonQuery();
cmdIns.Parameters.Clear();
cmdIns.Dispose();
cmdIns = null;
db.Close();
ShowPopUpMsg("successful");
}
else
{
ShowPopUpMsg(" old pass is not correct");
}
}
catch
{
ShowPopUpMsg("unable to connect database");
}
}
}
Похоже, что в вашем блоке try есть исключение. Проверьте StackTrace и исправьте это исключение. – Karthik
Сообщение об ошибке может вводить в заблуждение (вероятность довольно высокая). Попробуйте отлаживать приложение (F5 должен работать в вашем случае), поставить точку останова непосредственно за «try» и посмотреть, какая строка ДЕЙСТВИТЕЛЬНО вызывает проблему. Если вы не можете отладить код: удалите try/catch для тестирования, чтобы получить строку (и реальную ошибку) –
«что не так» - как мы должны знать? Вы получаете все исключения, * игнорируя * содержащиеся в них данные и просто заменяя неопределенное сообщение об ошибке. –