SQL ServerデータベースからDatatableにデータを読み取るときに問題が発生しています。私はDataGridViewのデータソースとしてDatatableを使用しており、次のコードを使用してSQL Serverテーブルからデータテーブルを埋めます。このコードは10秒ごとに実行され、結果が更新されたままになり、行が変更または追加されたとき(プログラムの別のインスタンスまたはssmsから直接)は正常に動作しますが、データベースから行が削除されたときにデータテーブルに残ります。例えばDatatable.Loadで削除された行が削除されない
、私は当初、次のクエリでテーブルをロードする場合:
SELECT TOP 10 *
FROM Table
、その後のDataTableはまだ10行を持っているでしょう
SELECT TOP 5 *
FROM Table
でそれをロードします。
私はすべてLoadOptions
(Upsert、OverwriteChangesおよびPreserveChanges)の同じ結果を試しました。
私が見つけた唯一の解決策は、ロードする前にdatatable.Rows.Clear()
に電話することですが、それ以外の問題が発生します。
using (SqlConnection con = new SqlConnection(_connectionString))
using (SqlCommand command = new SqlCommand(query, con))
{
con.Open();
using (SqlDataReader reader=command.ExecuteReader())
{
dt.Load(reader);
}
con.Close();
}
どうすればこの問題を解決できますか?
は、あなただけの新しいデータテーブルを作成することができます。
のように見えることはできますか? dt = new DataTable(); – msmucker0527
それから、私はdatagridviewのデータソースをリセットする必要があります。それは正しいように見えた。それは大丈夫なので、私はそれを試してみましょう。 –
datagridviewのデータソースをいずれかの方法でリセットする必要があります – msmucker0527