2

DBF ファイルからデータを取得し、それを DataTable に入れます。たとえば、個別のデータを取得したいだけです。

Column1
  a
  b
  c
  b
  a

そして、DataTable には次のものだけを入力する必要があります。

Column1
  a
  b
  c

これを実現する方法、または回避する方法はありますか??

            connDBF.Open();
            string jobData1 = "SELECT * FROM HREQDETM.DBF";

            OdbcCommand cmd1 = new OdbcCommand();
            cmd1.CommandText = (jobData1);

            OdbcDataAdapter dbAdapter1 = new OdbcDataAdapter(jobData1, connDBF);

            DataSet dtSet1 = new DataSet();
            dbAdapter1.Fill(dtSet1);


            DataTable dbTable1 = dtSet1.Tables[0];

問題は、移行を行っていて、データが DBF ファイルにあるということです。コンピューターでスクリプトを実行し、SQL ステートメントで VPN を介してデータを送信するので、何か手っ取り早い方法が必要です。

4

2 に答える 2

3

DISTINCTクエリに追加するだけ

string jobData1 = "SELECT DISTINCT Column1 FROM HREQDETM.DBF";

Column1 に個別の値が必要で、テーブル内の残りの列が必要な場合は、Column1 の 2 つ以上の値が 1 つにグループ化されたときに取得するデータを決定する必要があります。

Column1  Column2
  a         1
  b         1
  c         1
  b         2
  a         2

したがって、重複aが削除されると、column2:1または? に何を表示しますか2?
あなたは書ける:

SELECT
   Column1,
   MIN(Column2) --To get 1 Or MAX(Column2) to get 2
FROM 
  HREQDETM.DBF
GROUP BY 
  Column1

Group by と集計についてもう少し読むことをお勧めします

于 2012-10-08T19:54:16.640 に答える
2

DISTINCTを使用:

SELECT DISTINCT Column1 FROM HREQDETM.DBF

別の方法として、すべてのデータを DataTable に保持し、個別の値のみを抽出する場合 (ソースを再クエリする必要がないため、DataView を作成し、それを個別の値にフィルター処理することができます。

DataView view = new DataView(table);
DataTable distinctValues = view.ToTable(true, "Column1");
于 2012-10-08T19:54:04.160 に答える