Seguint amb la sèrie de la clsDades aquesta és la funció que s'encarrega d'esborrar un registre a la BBDD. Fa servir la SP DEL per fer-ho. Així que ha de fer servir la variable ParamsDEL per informar-ne els paràmetres. Normalment aquests paràmetres són la primary key (PK), de tal manera que només s'esborra un registre. Existeix en 2 sabors diferents, un que rep un DataRow i un altra que rep un objecte Dictionary (on les Keys són els noms dels camps i els Values el valor). Igual que la funció INS, aquesta també invalida la cache. Com sempre el codi, primer el que rep el Dictionary: 
public void DEL(Dictionary<string, string> Params)
{
    SqlCommand SqlComm = new SqlCommand();
    SqlParameter SqlParam;
    bool LocalConn;
    SqlConnection Conn = null;
    if (SQLConn == null)
    {
	LocalConn = true;
	Conn = new SqlConnection(CadConnBBDD);
	Conn.Open();
    }
    else
    {
	LocalConn = false;
	Conn = SQLConn;
    }
    SqlComm.Connection = Conn;
    if (SQLTrans != null) SqlComm.Transaction = SQLTrans;
    SqlComm.CommandType = CommandType.StoredProcedure;
    SqlComm.CommandText = spDEL;
    foreach (clsCamp Camp in ParamsDEL)
    {
	SqlParam = CreaParametre(Camp, false);
	if (Params.Keys.Contains<string>(Camp.NomCamp))
	{
	    if (string.IsNullOrEmpty(Params[Camp.NomCamp])) SqlParam.Value = DBNull.Value;
	    else SqlParam.Value = Params[Camp.NomCamp];
	}
	else SqlParam.Value = DBNull.Value;
	SqlComm.Parameters.Add(SqlParam);
    }
    SqlComm.ExecuteNonQuery();
    if (TeCache && AutoNetejaCache)
    {
	ClearCache();
    }
    if (LocalConn)
    {
	Conn.Close();
	Conn.Dispose();
	Conn = null;
    }
}
 
I després la versió DataRow: 
public void DEL(DataRow DR)
{
    SqlCommand SqlComm = new SqlCommand();
    SqlParameter SqlParam;
    bool LocalConn;
    SqlConnection Conn = null;
    if (SQLConn == null)
    {
	LocalConn = true;
	Conn = new SqlConnection(CadConnBBDD);
	Conn.Open();
    }
    else
    {
	LocalConn = false;
	Conn = SQLConn;
    }
    SqlComm.Connection = Conn;
    if (SQLTrans != null) SqlComm.Transaction = SQLTrans;
    SqlComm.CommandType = CommandType.StoredProcedure;
    SqlComm.CommandText = spDEL;
    foreach (clsCamp Camp in ParamsDEL)
    {
	SqlParam = CreaParametre(Camp, false);
	if (DR.Table.Columns.Contains(Camp.NomCamp))
	{
	    if (DR.IsNull(Camp.NomCamp)) SqlParam.Value = DBNull.Value;
	    else SqlParam.Value = DR[Camp.NomCamp];
	}
	else SqlParam.Value = DBNull.Value;
	SqlComm.Parameters.Add(SqlParam);
    }
    SqlComm.ExecuteNonQuery();
    if (TeCache && AutoNetejaCache)
    {
	ClearCache();
    }
    if (LocalConn)
    {
	Conn.Close();
	Conn.Dispose();
	Conn = null;
    }
}
  |