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



