如何动态更新数据源C#

本文关键字:更新 数据源 动态 何动态 | 更新日期: 2023-09-27 18:26:01

我有一个日历,可以根据所选日期显示信息。它是这样的:

string queryString = "SELECT * from events";
SqlCommand thisCommand = thisConnection.CreateCommand();
thisCommand.CommandText = queryString;
SqlDataReader reader = thisCommand.ExecuteReader();
if(true)
    queryString = "SELECT Text from events where repeat = 1";
else 
    queryString = "SELECT Text from events where repeat = 0";
GridView1.DataSource = reader ;
GridView1.Bind();

我得到的错误是"数据源不支持服务器端数据分页"

如何动态更新数据源C#

您应该使用SqlDataAdapter来填充DataTable,然后将该数据表用作网格视图的数据源。SqlReader是用于快速访问sql数据的类,它不适合作为数据源。

var adapter = new SqlDataAdapter(thisCommand);
var table = new DataTable();
adapter.Fill(table);
GridView1.DataSource = table;
GridView1.Bind();   

不过,您将在web服务器上执行所有的排序/分页操作——这些操作最好直接在SQL服务器上处理。因此,我建议使用ObjectDataSource或LinqDataSource,并适当调整查询以处理SQL服务器级别的分页/排序。