如何动态更新数据源C#?

时间:2014-10-09 15:27:27

标签: c# sql asp.net datasource

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

GridView1.DataSource = table;
GridView1.Bind();   

您将在Web服务器上进行所有排序/分页 - 此操作最好直接在SQL Server上处理。所以我建议使用ObjectDataSource或LinqDataSource并适当调整查询以处理SQL服务器级的分页/排序。