1

デフォルトでGridviewに日付を降順に表示したい。

DataTable dt = new DataTable();
SqlDataAdapter adp = 
   new SqlDataAdapter("SELECT Customer.CustomerID, Customer.lastname, Customer.firstname, 
                              Ticket.Date, Ticket.Store, Ticket.Amount, Ticket.NoStub " +
                      "FROM Customer INNER JOIN Ticket ON Customer.CustomerID = Ticket.CustomerID 
                       WHERE Customer.CustomerID like " + txtCustomerID.Text, cn);
adp.Fill(dt);
gvHistory.DataSource = dt;
4

4 に答える 4

2

追加するだけです:

 order by Ticket.Date desc

次のように、SQL ステートメントの末尾に追加します。

DataTable dt = new DataTable();
        SqlDataAdapter adp = new SqlDataAdapter("SELECT Customer.CustomerID,             Customer.lastname, Customer.firstname, Ticket.Date, Ticket.Store, Ticket.Amount, Ticket.NoStub " +
                                                "FROM Customer INNER JOIN Ticket ON Customer.CustomerID = Ticket.CustomerID WHERE Customer.CustomerID like " + txtCustomerID.Text + " order by Ticket.Date desc", cn);
        adp.Fill(dt);
        gvHistory.DataSource = dt;
于 2013-07-29T03:44:55.840 に答える
1
  1. ダミスが推奨したように、データグリッドでソート機能を使用することをお勧めします
  2. ユーザー パラメータを SQL ステートメントに直接入れないでください。を使用WHERE Customer.CustomerID like @customerIdして、コマンドにパラメーターを追加する必要がありますname = @customerId and value = txtCustomerID.Text。これにより、1) ユーザー入力によるデータベースの破壊が防止され、2) SQL プラン キャッシュの肥大化が防止されます。
于 2013-07-29T04:16:48.043 に答える
1

@Adelsの回答として、コードで実行したい場合は、SQLステートメントを変更して注文できます。DataGridView.Sort以下の方法を試してください

gvHistory.Sort(gvHistory.Columns["ColumnName"], ListSortDirection.Descending);
于 2013-07-29T03:55:55.757 に答える