Foros del Web » Programación para mayores de 30 ;) » .NET »

No entiendo que pasa con estas consultas [MySql + C#]

Estas en el tema de No entiendo que pasa con estas consultas [MySql + C#] en el foro de .NET en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 30/08/2010, 21:47
Avatar de 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)
  #2 (permalink)  
Antiguo 31/08/2010, 10:09
Avatar de gedarufi  
Fecha de Ingreso: diciembre-2008
Ubicación: Colombia
Mensajes: 540
Antigüedad: 15 años, 5 meses
Puntos: 22
Respuesta: No entiendo que pasa con estas consultas [MySql + C#]

Debes de quitarle las comillas a los parámetros de la consulta, asi debe de quedar:

Código C#:
Ver original
  1. query = "UPDATE tblowners "+
  2.                         "SET " +
  3.                         "NAME = @NAME, " +
  4.                         "TELEPHONE = @TELEPHONE, " +
  5.                         "CELLPHONE = @CELLPHONE, " +
  6.                         "ADDRESS = @ADDRESS, " +
  7.                         "MAIL =  @MAIL" +
  8.                         "WHERE ID_OWNER = @ID_OWNER ";

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

Huy mijo, muchas gracias de verdad no había visto las comillas

Eso era, ya esta funcionando el update

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)

Etiquetas: mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:02.