2011-10-27 15 views
0

私のプロジェクトでは、アカウントを作成するためのコードです。コードはResponse.Write(iduser)まで完璧に動作していますが、UPDATEコマンドが機能していません。例外を使用してエラーは見つかりませんでしたが、MySQLのレコードは更新されません。奇妙! MySQLのアップデートはエラーなしで動作しません

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

これでUpdatePanelを使用していますか?その場合は、バグを修正するまで削除してください。 –

+0

いいえこのコードではUpdatePanelを使用していません。 –

答えて

2

私はResponse.Write一部についてはよく分からないが、私はあなたがSQLCommandを作成するが、実際にそれを実行しないことを確信しています。

cmd.executeNonScalar()を忘れましたか?

+0

うん!あなたは書きます。ちょうど今私は 'cmd.executenonquery'が足りないことを発見しました。ありがとう。 –