Witam,
mam problem z insertami oraz updatami w mojej aplikacji polaczonej z zewnetrzna baza MySQL z serwisu home.pl.
Początkowo miałem wszystko podłączone do lokalnej bazy MSSQL, myslac ze przelaczenie miedzy bazami nie bedzie dużym problemem, jednak przy zmianie, podczas rejestracji, lub zwyklej zmiany hasła wyrzuca mi błąd :
"Specified cast is not valid" - jakbym mial zle skonskruowane zapytanie, jednak bezposrednio do bazy je wklepujac nie mam problemu, ponizej kod :
public void ChangePassMethod()
{
bool exists = false;
string passwd = passtxt.Text;
string passchange = "update `OpUser` set `password`=@password WHERE `login`=@username";
DialogResult dialog = MessageBox.Show("Na pewno zmienić hasło dla użytkownika : " + logintxt.Text + " ?", "Password change", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
if (dialog == DialogResult.OK)
{
try
{
con.Open();
using (MySqlCommand ck = new MySqlCommand("select `login` from `OpUser` where `login`=@username", con))
{
ck.Parameters.AddWithValue("@username", logintxt.Text);
exists = (int)ck.ExecuteScalar() > 0;
}
if (exists)
{
string EncryptedPass = HashPass(passwd);
MySqlCommand mcd = new MySqlCommand(passchange, con);
mcd.Parameters.AddWithValue("@username", MySqlDbType.VarChar).Value = logintxt.Text;
mcd.Parameters.AddWithValue("@password", MySqlDbType.VarChar).Value = EncryptedPass;
if (mcd.ExecuteNonQuery() == 1)
{
MessageBox.Show("Hasło zmieniono pomyślnie.");
this.Close();
}
else
{
MessageBox.Show("Wystąpił problem przy zmianie hasła, spróbuj ponownie.");
}
}
else if (!exists)
{
MessageBox.Show("Podano błędny login.", "Bląd", MessageBoxButtons.OK, MessageBoxIcon.Warning);
logintxt.Clear();
logintxt.Focus();
}
}
catch(Exception er)
{
MessageBox.Show(er.Message);
}
finally
{
con.Close();
}
}
Dodatkowo, jezeli wpisze zly login, ktorego w bazie nie ma, zamiast komunikatu : "Podano błędny login" gdy taki nie istnieje, sprawdzajac go ExecuteScalarem, wyrzuca mi błąd : "object reference not set to an instance of an object"
Sporo szukalem w sieci jednak juz rece opadaja, prosze o pomoc ...
Z góry dziekuje! :)