Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/08/2010, 21:47
Avatar de jhonwilliams
jhonwilliams
 
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 2 meses
Puntos: 76
No entiendo que pasa con estas consultas [MySql + C#]

Buenas compañeros

tengo el siguiente caso Insert , este código funciona perfectamente:
Código:
 MySqlConnection cn = new MySqlConnection(.GetStrigConnection());

            using (cn)
            {
                try
                {
                    cn.Open();
                    MySqlParameter pIdOwner = new MySqlParameter("@ID_OWNER", MySqlDbType.String, 40) { Value = id_owner };
                    MySqlParameter pCodeOwner = new MySqlParameter("@COD_OWNER", MySqlDbType.String, 20) { Value = cod_owner};
                    MySqlParameter pName = new MySqlParameter("@NAME", MySqlDbType.String, 80) { Value = name };
                    MySqlParameter pTelephone = new MySqlParameter("@TELEPHONE", MySqlDbType.String, 45) { Value = telephone };
                    MySqlParameter pCellPhone = new MySqlParameter("@CELLPHONE", MySqlDbType.String, 45) { Value = cellphone };
                    MySqlParameter pAddress = new MySqlParameter("@ADDRESS", MySqlDbType.String, 80) { Value = address };
                    MySqlParameter pMail = new MySqlParameter("@MAIL", MySqlDbType.String, 80) { Value = mail};

                    query = "INSERT INTO tblowners " +
                        "(ID_OWNER, " +
                        "COD_OWNER, " +
                        "NAME, " +
                        "TELEPHONE, " +
                        "CELLPHONE, " +
                        "ADDRESS, " +
                        "MAIL) " +
                        "VALUES " +
                        "( " +
                        "@ID_OWNER, " +
                        "@COD_OWNER, " +
                        "@NAME, " +
                        "@TELEPHONE, " +
                        "@CELLPHONE, " +
                        "@ADDRESS, " +
                        "@MAIL " +
                        ") ";

                    MySqlCommand cmd = new MySqlCommand(query, cn);
                    cmd.Parameters.Add(pIdOwner);
                    cmd.Parameters.Add(pCodeOwner);
                    cmd.Parameters.Add(pName);
                    cmd.Parameters.Add(pTelephone);
                    cmd.Parameters.Add(pCellPhone);
                    cmd.Parameters.Add(pAddress);
                    cmd.Parameters.Add(pMail);

                    result = cmd.ExecuteNonQuery();

                }
                catch (Exception ex)
                {
                    Common.CallException(ex);
                }
                finally
                {
                    cn.Close();
                }
Trato de usar la misma estructura en este bloque Update, pero no funciona por mas que miro y reviso el código yo lo veo bn
Código:
 MySqlConnection cn = new MySqlConnection(GetStrigConnection());

            using (cn)
            {
                try
                {
                    cn.Open();
                    
                    MySqlParameter pName = new MySqlParameter("@NAME", MySqlDbType.String, 80) { Value = name };
                    MySqlParameter pTelephone = new MySqlParameter("@TELEPHONE", MySqlDbType.String, 45) { Value = telephone };
                    MySqlParameter pCellPhone = new MySqlParameter("@CELLPHONE", MySqlDbType.String, 45) { Value = cellphone };
                    MySqlParameter pAddress = new MySqlParameter("@ADDRESS", MySqlDbType.String, 80) { Value = address };
                    MySqlParameter pMail = new MySqlParameter("@MAIL", MySqlDbType.String, 80) { Value = mail };
                    MySqlParameter pIdOwner = new MySqlParameter("@ID_OWNER", MySqlDbType.String, 40) { Value = id_owner };

                    query = "UPDATE tblowners "+
                        "SET " +
                        "NAME = '@NAME', " +
                        "TELEPHONE = '@TELEPHONE', " +
                        "CELLPHONE = '@CELLPHONE', " +
                        "ADDRESS = '@ADDRESS', " +
                        "MAIL =  '@MAIL'" +
                        "WHERE ID_OWNER = '@ID_OWNER' ";

                    MySqlCommand cmd = new MySqlCommand(query, cn);
                    cmd.Parameters.Add(pName);
                    cmd.Parameters.Add(pTelephone);
                    cmd.Parameters.Add(pCellPhone);
                    cmd.Parameters.Add(pAddress);
                    cmd.Parameters.Add(pMail);
                    cmd.Parameters.Add(pIdOwner);

                    result = cmd.ExecuteNonQuery();

                }
                catch (Exception ex)
                {
                    Common.CallException(ex);
                }
                finally
                {
                    cn.Close();
                }
            }
Algo muy similar me paso con este Select:
Código:
   MySqlConnection cn = new MySqlConnection(new Regedit().GetStrigConnection());

            using (cn)
            {
                try
                {
                    cn.Open();

                    query = string.Format("SELECT " +
                        "tblusers.ID_USER, " +
                        "tblusers.USERNAME, " +
                        "tblusers.NAME, " +
                        "tblusers.USERPASS,  " +
                        "tblusers.MAIL,  " +
                        "tblusers.PERMISSIONS " +
                        "FROM tblusers " +
                        "WHERE tblusers.USERNAME = '{0}' " +
                        "AND tblusers.USERPASS = '{1}' ", user,password);

                    MySqlCommand cmd = new MySqlCommand(query, cn);
                    MySqlDataAdapter adap = new MySqlDataAdapter(cmd);

                    DataTable table = new DataTable("tblUsers");

                    adap.Fill(table);

                    if (table.Rows.Count > 0)
                        result = true;
                    else
                        result = false;
                }
                catch (Exception ex)
                {
                    Common.CallException(ex);
                }
                finally
                {
                    cn.Close();
                }
A fin de cuentas no me funciono con los MySqlParameters y opte por armar la cadena de query con el string.format, pero me gustaría hacerla con los MySqlParameter, para tener una estructura uniforme en las consultas a la base de datos.

Gracias
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)