2014-06-13 3 views
0

하나의 특정 열을 기준으로 정렬하려고하는 2 개의 datagridview가 있습니다. 내가하려고하는 것은 프로그램이 시작될 때 DGV가 내림차순으로 한 열씩 자동으로 정렬되기를 원할 때입니다. 나는 찾고 있었고 내가 찾고있는 것을 찾을 수없는 것처럼 보였다.특정 열을 정렬하는 Datagridview

다음은 내가 묻는 이미지입니다. 먼저 저널 ID 열이 가장 높은 위치에서 시작하여 거기에서 내려 오기를 원합니다. 사전에

What it starts as

What I am looking for

덕분에

답변

0
private void Form1_Load(object sender, EventArgs e) 
      { 
       string connectionstring = @"Data Source=|DataDirectory|\Database1.sdf"; 
       SqlCeConnection connection = new SqlCeConnection(connectionstring); 
       SqlCeCommand command = new SqlCeCommand(" SELECT * FROM journalTbl ORDER BY journalId DESC ;", connection); 
       try 
       { 
        SqlCeDataAdapter adapter = new SqlCeDataAdapter(); 
        adapter.SelectCommand = command; 
        DataTable datatable = new DataTable(); 
        adapter.Fill(datatable); 
        BindingSource bindingsource = new BindingSource(); 

        bindingsource.DataSource = datatable; 
        dataGridView1.DataSource = bindingsource; 
        adapter.Update(datatable); 
       } 

       catch (Exception ex) 
       { 
        MessageBox.Show(ex.Message); 


} 




     }  
  • 명령을 데이터베이스에 대한 연결을 작성하고 를 통해 원하는 테이블을 선택
    • 는 특정 기능을 포함 명령 (in th journalId Desending 의한 경우 순서) 인
    • 데이터 집합 및 데이터 소스 사이의 통신
    • 은 데이터 테이블을 작성하고
    • 가 결합 소스 만들기 데이터 어댑터를 통해 기입하여 데이터 테이블
    • 에 할당 할 수 있도록하는 데이터 어댑터 만들기
    • datagridview 데이터 소스를 바인딩 소스로 설정하십시오.
    • 업데이트 어댑터

Order By SQL - SQL 참조

Order By clause C# MSDN 참조

참고 : 자동으로 오름차순으로 주문한다하여 주문. 나는 또한 SQL Compact Edition을 사용하고있다.

0

나는 당신의 를 Form1_Load (...) 방법에 다음 줄을 추가합니다.

DataGridViewColumn columnToSort = dataGridView1.Columns["ColumnNameToSortGoesHere"]; 
dataGridView1.Sort(columnToSort, ListSortDirection.Descending); 
0

코드 숨김을 사용하지 않아도됩니다. MVVM 모델과 Linq 라이브러리를 공부해야합니다. 당신은 일하고 더 깨끗하게 될 것입니다. 이 문제에 대한 모델 MVVM 당신 솔루션에서

은 단순히 그것을이다

<DataGrid ItemsSource="{Binding ListModelBinding}" /> 

바인딩 만들려면 XAML에서

private ObservableCollection<string> _listModelBinding; 
public ObservableCollection<string> ListModelBinding 
{ 
    get { return _listModelBinding; } 
    set { _listModelBinding= value; RaisePropertyChanged("ListModelBinding"); } 
} 

public MainViewModel() 
{ 

    ListModelBinding = ListModelBinding.OrderBy(x => x.ToString()); 

} 

당신의 ViewModel

에서

입니다.

MVVM Light NuGet을 사용하여 프로젝트에서 MVVM을 사용할 수 있습니다.

관련 문제