2010-11-26 10 views
1

このコードを使用してテーブル内の行を削除していますが、動作していません。 私は間違いを犯したり、何かを逃したりしますか?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

答えて

1

感嘆符とみんな。
ありがとうございました。
数回試してみたところ、解決策が見つかりました。

BookIDは列の名前で、このシンボルは、列名の前と後に追加する必要があります。

は、そのための正しい方法は次のとおりです。これは間違っている

string sql = "DELETE FROM books WHERE \"BookID\"=1;"; 

string sql = "DELETE FROM books WHERE BookID=1;"; 


おかげで再びあなたの助けのために。

+2

大文字と小文字を混在させて列や表に名前を付けるのは悪い考えです。私はbookidに改名し、二重引用符を使用しないことをお勧めします:«テーブルブックの改名列 "BookID"をbookidに» – Tometzky

+0

あなたのコメントのおかげでありがとう。私はそれに注意する。 – mjb

0

あなたが

よう NpgsqlCommand.ExecuteNonQuery Method

何かを使用してみました0

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(); 
} 
+0

このエラーメッセージを表示します:http://i901.photobucket.com/albums/ac218/pcser/error.jpgデータベースのスクリーンショット:http://i901.photobucket.com/albums/ac218/pcser/ database.jpg – mjb

関連する問題