.NET データ プロバイダー ライブラリを使用してデータベースから取り込まれた、それにバインドされた がDataGridView
あります。DataTable
PostgreSQL
Npgsql
レコードの入力は機能しますが、単一のレコードだけを既存の に追加したい場合DataTable
、以前のレコードは消えます:
NpgsqlDataAdapter npDataAdapterSingle = new NpgsqlDataAdapter("SELECT * from \"Weight\" ORDER BY id DESC LIMIT 1", this.npConnection);
DataTable tmpTable = new DataTable("tmpTable");
npDataAdapterSingle.Fill(tmpTable);
DSWeight.WeightRow row = this.dSWeight.Weight.NewWeightRow();
row.ItemArray = tmpTable.Rows[0].ItemArray;
this.dSWeight.Weight.Rows.InsertAt(row, 0); //Prepend, but i also tried this.dsWeight.Weight.Rows.Add(row);
LIMIT
'ingせずにすべてのレコードを選択すると、期待どおりに機能します。しかし、私は考えました - すでにそれらのレコードを持っているのに、なぜデータベースをもう一度クエリする必要があるのでしょうか? だからこそ、したいLIMIT
。
新しいレコードを手動でデータベースに追加し、クエリを実行してデータテーブルに追加するため、別の解決策があるかもしれません。新しいレコードをデータテーブルに追加し、それらをデータベースに追加するという本来の方法ではありません。データベースで id フィールドとタイムスタンプ フィールドを管理し、datagridview でこれらのフィールドにデータを入力する必要があるため、このようにします。
私は何が欠けていますか?