Es mi función agregar a una tabla:

public int insertHistory(string title, string description, int isDone, int userId)
{
    int s = -1;
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open();
        string sql = "INSERT INTO History(title,description,isDone,userId) VALUES(@param1,@param2,@param3,@param4)";
        using (SqlCommand cmd = new SqlCommand(sql, connection))
        {
            cmd.Parameters.Add("@param1", SqlDbType.NVarChar, 10).Value = title;
            cmd.Parameters.Add("@param2", SqlDbType.NVarChar, 400).Value = description;
            cmd.Parameters.Add("@param3", SqlDbType.Int).Value = isDone;
            cmd.Parameters.Add("@param4", SqlDbType.Int).Value = userId;
            cmd.CommandType = CommandType.Text;
            s = cmd.ExecuteNonQuery();
        }
    }
    return s;
}

¿Qué código necesito escribir para eliminar de la tabla por título o algo así?

0
Floyd1337 17 abr. 2020 a las 12:02

2 respuestas

Has solicitado eliminar usando Título y aquí es cómo hacerlo

    public int deleteHistory(string title)
    {
        int s = -1;
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            connection.Open();
            string sql = "DELETE FROM History WHERE Title = @title)";
            using (SqlCommand cmd = new SqlCommand(sql, connection))
            {
                cmd.Parameters.Add("@title", SqlDbType.NVarChar, 10).Value = title;
                s = cmd.ExecuteNonQuery();
            }
        }
        return s
 }

Sin embargo, realmente le sugiero que tenga algún tipo de identificador único en su tabla de historial. De esta manera, podría terminar para eliminar más registros de los que desea. Si dos o más registros tienen el mismo título, eliminará todos los registros con el mismo título.

1
tpol 17 abr. 2020 a las 09:11

Ya que está utilizando SqlConnection y una declaración SQL simple. Debe llamar a una declaración Delete en su código:

public void DeleteHistory(string title)
{

    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open();
        string sql = "delete from History where title= @title";
        using (SqlCommand cmd = new SqlCommand(sql, connection))
        {
            cmd.Parameters.Add("@title", SqlDbType.NVarChar).Value = title;
            cmd.CommandType = CommandType.Text;
            cmd.ExecuteNonQuery();
        }
    }
}
0
TiGreX 17 abr. 2020 a las 09:11