tengo el siguiente caso Insert , este código funciona perfectamente:
Código:
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 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(); }

Código:
Algo muy similar me paso con este Select: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(); } }
Código:
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.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(); }
Gracias
