Reputation: 7969
I'm using this code to delete a row in a table, but it's not working. Do I make a mistake or miss out something?
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();
}
}
}
The above task run, I notice that the database didn't make any changes. The bookID=1, which is the 1st row in the database still remains.
I have tried to use the INSERT command, it works. New data was inserted into the last row of the table. The below code running good.
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();
Any clue? Thanks.
Response to: astander
It shows this error message:
http://i901.photobucket.com/albums/ac218/pcser/error.jpg
Upvotes: 1
Views: 8002
Reputation: 7969
astander and guys.
Thanks for you help.
After several try, I have found the solutions.
BookID is the name of a column, this symbol " " has to be added before and after the column name.
Therefore the correct way is:
string sql = "DELETE FROM books WHERE \"BookID\"=1;";
This is wrong:
string sql = "DELETE FROM books WHERE BookID=1;";
Thanks again for your help.
Upvotes: 1
Reputation: 166476
Have you tried using NpgsqlCommand.ExecuteNonQuery Method
Something like
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);
command.ExecuteNonQuery(); //this line here??
conn.Close();
}
Upvotes: 0