このコードを使用してテーブル内の行を削除していますが、動作していません。 私は間違いを犯したり、何かを逃したりしますか?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();
}
}
}
上記のタスクを実行すると、データベースが変更されなかったことがわかります。データベースの第1行であるbookID = 1はまだ残っています。
私はINSERTコマンドを使用しようとしましたが、それは動作します。新しいデータがテーブルの最後の行に挿入されました。以下のコードはうまく動作しています。
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();
ヒント?ありがとう。
astanderそれは、このエラーメッセージを示しています:へ
応答
http://i901.photobucket.com/albums/ac218/pcser/error.jpg
大文字と小文字を混在させて列や表に名前を付けるのは悪い考えです。私はbookidに改名し、二重引用符を使用しないことをお勧めします:«テーブルブックの改名列 "BookID"をbookidに» – Tometzky
あなたのコメントのおかげでありがとう。私はそれに注意する。 – mjb