J'utilise ce code pour supprimer une ligne dans une table, mais cela ne fonctionne pas. Est-ce que je fais une erreur ou manque quelque chose?Comment supprimer une ligne dans une table dans Npgsql?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Npgsql;
namespace WindowsFormsApplication4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button_RemoveBook_Click(object sender, EventArgs e)
{
NpgsqlConnection conn = new NpgsqlConnection("Server=localhost;Port=5432;User Id=user;Password=1234;Database=library;");
conn.Open();
string sql = "DELETE FROM books WHERE BookID=1;";
NpgsqlCommand command = new NpgsqlCommand(sql, conn);
conn.Close();
}
}
}
La tâche ci-dessus s'exécute, je remarque que la base de données n'a apporté aucune modification. Le bookID = 1, qui est la 1ère ligne dans la base de données reste encore.
J'ai essayé d'utiliser la commande INSERT, cela fonctionne. De nouvelles données ont été insérées dans la dernière rangée de la table. Le code ci-dessous fonctionne bien.
private void button_addBook_Click(object sender, EventArgs e)
{
NpgsqlConnection conn = new NpgsqlConnection("Server=localhost;Port=5432;User Id=user;Password=1234;Database=library;");
conn.Open();
string addRow = string.Format("insert into books values(50,'Time','Frank','Science')");
NpgsqlCommand command = new NpgsqlCommand(addRow, conn);
conn.Close();
Une idée? Merci.
Réponse à: Astander
Il affiche ce message d'erreur:
http://i901.photobucket.com/albums/ac218/pcser/error.jpg
C'est une mauvaise idée de nommer des colonnes ou des tableaux dans un cas mélangé. Je recommande de le renommer bookid et jamais utiliser des guillemets: «alter table books renommer la colonne" BookID "pour bookid» – Tometzky
merci pour votre commentaire mec. Je prends note de cela. – mjb