C# Datagridview对特定列进行排序

C# Datagridview对特定列进行排序,c#,sqlite,C#,Sqlite,我有两个datagridview,我正试图按一个特定列进行排序。我想做的是,当程序启动时,我希望DGV通过降序自动按一列排序。我一直在寻找,似乎找不到我要找的东西 以下是我所问问题的图像。我希望journalID列首先从最高处开始,然后从最高处下降 提前谢谢 private void Form1_Load(object sender, EventArgs e) { string connectionstring = @"Data Sourc

我有两个datagridview,我正试图按一个特定列进行排序。我想做的是,当程序启动时,我希望DGV通过降序自动按一列排序。我一直在寻找,似乎找不到我要找的东西

以下是我所问问题的图像。我希望journalID列首先从最高处开始,然后从最高处下降

提前谢谢

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);


}




        }       
创建到数据库的连接,并通过 命令 在本例中,在命令中包括特定函数,按journalId Desending排序 创建数据适配器以允许数据集和数据源之间的通信 创建datatable并通过数据适配器填充 创建绑定源并将其分配给datatable 将datagridview数据源设置为绑定源。 更新适配器 -SQL参考

MSDN参考


请注意:Order by将自动按升序排序。我也在使用Sql Compact Edition。

我将在您的Form1\u加载中添加这些行。。。方法


你不应该使用代码隐藏。您应该学习MVVM模型和Linq库。你的工作会更好,也会更干净

在MVVM模型中,您可以使用

在您的ViewModel中

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

public MainViewModel()
{

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

}
在xaml中,只需创建绑定

<DataGrid ItemsSource="{Binding ListModelBinding}" />
就这样

您可以使用MVVM Light NuGet在项目中使用MVVM

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