• 締切済み

PostgreSQL+DataGridView

質問させてください。 環境:PostgreSQL、VB.NET2010、Npgsql PostgreSQL上のDBには以下のテーブルを準備 create table test_table ( id serial not null primary key, category_name text not null ); とりあえず1行のデータのみ入っています。 ユーザフォームにDataGridViewとButtonとBindingSourceを1つづつ配置。 以下のプログラムでフォームロード時にDBの内容をDataGridViewへ表示させることまでできました。 Imports Npgsql Public Class Form1 Public Const conn = "Server=****;Port=****;User Id=****;Password=****;Database=****;" Private DA As NpgsqlDataAdapter Private DT As New DataTable Private Sub Form1_Load(省略) Try Dim command As String = "select * from test_table" DA = New Npgsql.NpgsqlDataAdapter( command, conn ) DT = New DataTable DA.Fill(DT) BindingSource1.DataSource = DT DataGridView1.DataSource = BindingSource1.DataSource Catch ex As Exception MessageBox.Show(ex.Message.ToString(), "エラー") End Try End Sub End Class そこで、このDataGridViewへユーザが入力、修正し、配置したボタンを押すことでDBへ反映させたいのですが、この部分がよくわからなくて困っています。 PostgreSQL以外のDBはサンプルが沢山あるのですが・・・・ よろしくお願いします。

みんなの回答

  • lv4u
  • ベストアンサー率27% (1862/6715)
回答No.2

>>業務はそれを待ってくれずとりあえず少しでも進めなければいけないのが辛いところです。 小学生に「微分・積分の問題を解きなさい」と強制しても無理なように、知らないことはできません。そんな業務できないと言いましょう。 >>Npgsql独自の部分があるようで、他のDB向けにかかれたサンプルではエラーになったり、動かなかったりしています。 単純に、DBの追加・更新・削除等だけなら、Npgsql独自の機能なんて不要だと思えますけどね。 独自部分を探して、とりあえずそれを抜きに動作するようにしてみれはどうでしょう? >>実際のソースだけでなく、参考になるHP,サンプルソース等ありましたらお教え下さい。 私もネットや本やで参考になるサンプルを探したのですが、分かりやすくて参考になるサンプルソースは紹介した書籍でしかありませんでした。

ayana_daiki
質問者

お礼

お礼が遅くなりすみません。 >>小学生に「微分・積分の問題を解きなさい」と強制しても無理なように、知らないことはできません。そんな業務できないと言いましょう。 社会ではできないでは通用しない状況もあったりします。なかなか正論では通用しません。 >>単純に、DBの追加・更新・削除等だけなら、Npgsql独自の機能なんて不要だと思えますけどね。 独自部分を探して、とりあえずそれを抜きに動作するようにしてみれはどうでしょう? 通常のSQLコマンドでの操作はできています。 今回伺いたかったのは、DataGridView上でのデータ操作です。 >>私もネットや本やで参考になるサンプルを探したのですが、分かりやすくて参考になるサンプルソースは紹介した書籍でしかありませんでした。 あれからもいろいろと探して見ましたが、なかなかずばりのものはないですね。 C#のサンプルを見つけましたので、それをVBに移植してなんとか動きそうなところまでたどり着きました。 ありがとうございました。

  • lv4u
  • ベストアンサー率27% (1862/6715)
回答No.1

>>PostgreSQL以外のDBはサンプルが沢山あるのですが・・・・ Npgsqlの説明をみると、 「.Net フレームワーク用に開発されたプログラムであればどんなものでもデータベースサーバにアクセスできます。」 と書かれています。 なので、DBがPostgreSQLであろうが、SQLServerであろうが、言語が同じサンプルなら問題なく動作するものと思いますよ。 >>ユーザが入力、修正し、配置したボタンを押すことでDBへ反映させたいのですが、この部分がよくわからなくて困っています。 これは、質問者さんがPostgreSQLというよりも、VB.NET2010のDBプログラムそのものの理解ができていないのだと思います。 「フォームロード時にDBの内容をDataGridViewへ表示させることまでできました。」 なんて書かれているくらいですからね。 実際問題として、.NETでDBを扱うのは、一見すると簡単そうに見えますが、実際には、DBプログラミングに関して、十分な知識が無いと無理だと思います。 .NET以前は、人間が頑張ってDBのプログラムのコードをガリガリと書いていた部分が、.NETではかなり自動生成されるようになりました。 が、それらのコードの果たす機能が不要になったわけではないので、その「見えなくなった機能」の部分を理解していないと訳解らなくなるってことです。 .NETでDBを扱われるのでしたら、「プログラミングADO.NET 2.0」(定価8,500円)を購入されて精読されることをお勧めします。

ayana_daiki
質問者

お礼

早速の回答、ありがとうございます。 >.NETでDBを扱われるのでしたら、「プログラミングADO.NET 2.0」(定価8,500円)を購入されて精読されることをお勧めします。 確かにいろいろな知識が不足しているため、勉強中ですが、業務はそれを待ってくれずとりあえず少しでも進めなければいけないのが辛いところです。 >DBがPostgreSQLであろうが、SQLServerであろうが、言語が同じサンプルなら問題なく動作するものと思いますよ。 Npgsql独自の部分があるようで、他のDB向けにかかれたサンプルではエラーになったり、動かなかったりしています。 >「フォームロード時にDBの内容をDataGridViewへ表示させることまでできました。」 事細かにプロセスを説明する場ではないと思ったので上のような表現をしました。 どのように表現するのが正しいのでしょうか? 実際のソースだけでなく、参考になるHP,サンプルソース等ありましたらお教え下さい。 よろしくお願いします。