私はさまざまなサイトやコードを調べてきましたが、私の悲惨さを終わらせるものは何もないようです. 特定の列の重複を見つけて削除するのに役立つか、基になるデータベース自体ではなく、データテーブルからのみ削除します。mdb ファイルのテーブル "table1" から重複する行を削除したいと考えています。
私の要件をより明確にするために:
- テーブル内のどの列にも主キーが設定されていません (そして、余裕がありません)
- 重複する行を 1 つだけ残してすべて削除したい! (順番は関係ありません)
- データベース自体を更新する前に、そのような行が存在するかどうかを最初に確認するよりも、データベースから重複を削除することを好みます(それが最後の手段である場合は、そうではありませんが、それは大歓迎です)
重複行とは、明確でない行を意味します。たとえば、次の例では、3 行目と 5 行目だけが重複しています。そして、それらのいずれかを削除したいと思います。
Name1 Name2 Name3 tom dick harry tom dick mike ann sara mike sara ann mike ann sara mike
重複行は、次のようにボタンをクリックしてデータベースから削除する必要があります
private void button1_Click(object sender, EventArgs e)
{
deletedupes();
}
private void deletedupes()
{
OleDbConnection con = new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0; Data Source=C:\\hi.mdb");
DataSet ds = new DataSet();
OleDbDataAdapter da = new OleDbDataAdapter("select * from table1", con);
con.Open();
da.Fill(ds, "table1");
// what could be rest of the code??
}
前もって感謝します。はい、私は初心者です..