【问题标题】:ASP.NET C# GridView paging optionsASP.NET C# GridView 分页选项
【发布时间】:2017-10-13 07:51:23
【问题描述】:

我目前正在尝试让 gridview 一次加载 1 个问题,当我将分页设置为 1 时,它给了我这个错误。

同样使用 VS15 SQL 服务器

【问题讨论】:

  • 请将代码作为文本包含在您的问题中,而不是图片。我们不使用图片进行编程。很难复制/粘贴您的代码,也很难索引文本以进行搜索。
  • 对不起,我这样做主要是为了显示我得到的错误。我不会再这样做了
  • 图片可以作为补充,但您需要在问题中包含实际代码和实际错误作为文本。

标签: c# asp.net visual-studio gridview


【解决方案1】:

尝试使用 SqlAdapter 而不是 SqlDataReader。原因是如果您使用 SqlDataReader,您将无法返回 Page。 SqlAdapter 支持双向遍历。

您没有使用数据表从选择查询中检索结果。改用这个

 protected void Page_Load(object sender, EventArgs e) { 
    if (!Page.IsPostBack) {
       loadgrid(); 
    }
 }
 private void loadgrid() {
 con.Open(); 
 cmd.CommandText = "SELECT TOP 4 * FROM [Question] ORDER BY NEWID()"; 
 cmd.Connection = con;
 SqlDataAdapter ad = new SqlDataAdapter(cmd); 
 DataTable dt = new DataTable();
 ad.Fill(dt);
 GridView1.DataSource = dt; 
 GridView1.AllowPaging = true; 
 GridView1.DataBind();

 }

【讨论】:

  • SqlDataAdapter rd = cmd.ExecuteReader();我已经走到了这一步,你会写什么来代替“ExecuteReader”?
  • SqlDataAdapter rd = new SqlAdapter(cmd);
  • 我遇到了另一个错误:System.Web.dll 中发生了“System.InvalidOperationException”类型的异常,但未在用户代码中处理附加信息:数据源是无效类型。它必须是 IListSource、IEnumerable 或 IDataSource。这一切对我来说都是新的。
  • 你能分享一下loadGridMethod吗?
  • protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { loadgrid(); } } 私有 void loadgrid() { con.Open(); cmd.CommandText = "SELECT TOP 4 * FROM [Question] ORDER BY NEWID()"; cmd.Connection = con; SqlDataAdapter 广告 = 新的 SqlDataAdapter(cmd); GridView1.DataSource = 广告; GridView1.AllowPaging = true; GridView1.DataBind();这有什么用吗? :)
猜你喜欢
  • 2016-07-30
  • 1970-01-01
  • 2013-08-30
  • 1970-01-01
  • 1970-01-01
  • 2018-04-20
  • 2010-10-09
相关资源
最近更新 更多