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