2012-03-16 3 views
0

私はどのように私はデータベースからデータを取得し、それをDataTableという名前のデータに追加するための私のコードです 私はこの行を "Spelionu skaicius"ますます)、しかし、私はそれを実現する方法を知らない、誰かがそれを助けることができますか? これを並べ替える方法がたくさんあることは知っていますが、私はこれをインターフェイスを使って作る必要があります。C#の行をdataTableのインターフェイスを使用して並べ替え

using (FbConnection fbBD = new FbConnection(csb.ToString())) 
{ 
    fbBD.Open(); 
    FbTransaction transact = fbBD.BeginTransaction(); 
    FbCommand sqlReq = 
     new FbCommand("SELECT vardas,pavarde,sp_skaicius,spelioniu_sk FROM zaidejai WHERE atspetas='Taip'", fbBD, transact); 
    using (FbDataReader r = sqlReq.ExecuteReader()) 
    { 
     while (r.Read()) 
     { 
      DataRow rw = dt.NewRow(); 
      rw["Vardas"] = r.GetString(0); 
      rw["Pavarde"] = r.GetString(1); 
      rw["Skaicius"] = r.GetValue(2); 
      rw["Spelionu skaicius"] = r.GetValue(3); 
      data.Rows.Add(rw); 
     } 
    } 
    transact.Commit(); 
    fbBD.Close(); 
} 

P.S.私の英語のため申し訳ありません

+0

ORDERあなたのSQLクエリでspelioniu_sk ASCによって?とにかくそのフィールドの値を取得しているように見えますが、なぜクエリがあなたのためにそれをしないのですか? – Gobbledigook

+0

「インターフェース別」とはどういう意味ですか? –

+0

インターフェイスを使用して、たとえばIComperable – Bublik

答えて

1

DataTableの[既定のプロパティを使用します。

data.DefaultView.Sort = "Spelionu skaicius"; 

あなたがdata.DefaultView(データビュー)で作業することができたり、データテーブルが必要な場合は、あなたがこれを行うことができます:

data = data.DefaultView.ToTable(); 

< - EDIT - >

上記は通常のソートにあります。 IComparableを使用する場合は、DataTableの代わりにカスタムクラスを使用する必要があります。 Hereさんの説明はどうですか?

+0

まず、私はdata.DefaultView.Sort = "Spelionu skaicius"; それは最も大きいものから最も小さいものまで並べ替える必要があります。 さらに、私はこの順序を逆にするために – Bublik

+0

というインターフェースを使ってこれをソートするように求められました。 "[Spelion uskaicius] DESC"を使ってください。今、IComparableについて、なぜこれが必要ですか?あなたは本当にソートのための特別なルールを持っていますか? –

+0

ちょうど先生がインターフェイスでこれを作ると言った:D – Bublik

1

それはあなたがデータベースがそう代わりにデータを並べ替える許可すれば、私はこれまで、あなたの選択を変更しますがベストです:それはその後、マッピングされている、あなたの選択に記載されている4列目だから、私はspelioniu_skを使用

SELECT vardas,pavarde,sp_skaicius,spelioniu_sk 
    FROM zaidejai 
    WHERE atspetas='Taip' 
    ORDER BY spelioniu_sk 

注意あなたのデータテーブル定義

Spelionu skaiciusには、データベースからデータを得ている後、あなたはまだデータテーブルを並べ替える必要がある場合は、おそらく異なる順序で、あなたはとてもとしてのDataTableのデータビューproperyを使用することができます。

data= data.DefaultView.Sort = "`Spelionu skaicius` ASC"; 

OR

data = data.DefaultView.Sort = "`Spelionu skaicius` DESC"; 

あなたはソートする必要があることを順序によって。

注:上記のソート式が正常に動作するかどうかはわかりません。真ん中にスペースを置くことにしたので、2つの単語を逆引用符(上記のように)または大括弧(たとえば、[Spelionu skaicius] ASC)に囲む必要があります。

関連する問題