Vreemd! MySQL-update werkt niet zonder fout

Het onderstaande is mijn code om een ​​account aan te maken in mijn project. De code werkt perfect tot Response.Write (iduser) maar de opdracht UPDATE werkt niet. Geen fout gevonden met uitzondering, maar MySQL's record is niet bijgewerkt.

    try
                {

                    string pet1 = "[email protected]";
                    string MyConString = "DRIVER={MySQL ODBC 3.51 Driver};" + "SERVER=localhost;" + "DATABASE=newtest;" + "UID=root;" + "PASSWORD=**********;" + "OPTION=3";
                    OdbcConnection MyConnection = new OdbcConnection(MyConString);
                    OdbcCommand cmd = new OdbcCommand("Select id_user from awm_accounts where email=?", MyConnection);
                    cmd.Parameters.Add("@val1", OdbcType.VarChar, 255).Value = pet1;
                    MyConnection.Open();
                    OdbcDataReader dr = cmd.ExecuteReader();
                    if (dr.HasRows == false)
                    {
                        throw new Exception();
                    }
                    if (dr.Read())
                    {
                        int iduser = Convert.ToInt32(dr[0].ToString());
                        Account acct = new Account();
                        acct.Email = username.Text + domain.Text;
                        acct.MailIncomingLogin = username.Text + domain.Text;
                        acct.MailIncomingHost = "imap." + DropDownList1.SelectedValue;
                        acct.MailIncomingPassword = password.Text;
                        acct.MailIncomingPort = 993;
                        acct.MailOutgoingHost = "smtp." + DropDownList1.SelectedValue;
                        acct.MailOutgoingPort = 465;
                        acct.MailIncomingProtocol = IncomingMailProtocol.Imap4;
                        acct.MailOutgoingAuthentication = true;
                        acct.DefaultAccount = false;
                        acct.IDUser = 1;
                        integr.CreateUserFromAccount(acct);
                        Response.Write(iduser);
                        if (!IsPostBack)
                        {
                            cmd = new OdbcCommand("UPDATE awm_accounts SET id_user=? WHERE email=? ", MyConnection);
                            cmd.Parameters.Add("@tb_nickname", OdbcType.Int, 11).Value = iduser;
                            cmd.Parameters.Add("@tb_fullname", OdbcType.VarChar, 255).Value = username.Text + domain.Text;
cmd.ExecuteNonQuery();
                        }
                    }
                    MyConnection.Close();
                }
            catch (Exception exp)
            {
                Response.Write(exp);
            }
0
Nee. Ik gebruik UpdatePanel niet in deze code.
toegevoegd de auteur Mad coder., de bron
Gebruikt u hierbij een UpdatePanel? Als dat zo is, verwijder het dan gewoon totdat je bug gerepareerd is.
toegevoegd de auteur rlb.usa, de bron

1 antwoord

Ik weet het niet zeker over het Response.Write -gedeelte, maar ik ben er zeker van dat je een SQLCommand maakt, maar deze nooit echt uitvoert.

Ben je vergeten om hier een cmd.executeNonScalar() in te plaatsen?

2
toegevoegd
Ja! je bent aan het schrijven. Zojuist merkte ik dat ik cmd.executenonquery mistte. Ik heb het toegevoegd en de code werkte prima. Bedankt.
toegevoegd de auteur Mad coder., de bron