【问题标题】:GridView not appearing on webpageGridView 没有出现在网页上
【发布时间】:2018-09-06 21:00:31
【问题描述】:

我正在构建一个 Web 表单。我有一个搜索字段和一个搜索按钮。我正在连接到 MS Access 数据库以检索并在网格视图上显示结果。但是我的网格视图没有出现在网页上。

谁能帮我找出我错在哪里?

这是我的 aspx.cs 代码:

protected void Button1_Click(object sender, EventArgs e)
{
    OleDbConnection con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\Smita\\Desktop\\Project.accdb");
    DataTable dt = new DataTable() ;
    if (txtMerchant.Text.Length > 0)
    {
        con.Open();
        OleDbDataAdapter DBAdapter = new OleDbDataAdapter();
        DBAdapter.SelectCommand = new OleDbCommand("select * from Test where Merchant ID like '" + txtMerchant.Text + "%'", con);
        DBAdapter.Fill(dt);
        GridView1.DataSource = dt;
    }

【问题讨论】:

  • 请注意,您很容易受到 SQL 注入攻击。你应该从一开始就养成使用parametized queries的习惯。
  • 感谢您的提示。我调查一下。

标签: c# asp.net gridview webforms oledb


【解决方案1】:

您必须在分配数据源后首先调用DataBind,绑定方法。 像这样:

GridView1.Visible = true;
GridView1.DataSource = dt;
GridView1.DataBind();

【讨论】:

  • 他的“dt”不是还是空白的,还是DBAdapter.Fill(dt)改了?
  • 是的,数据库适配器用数据填充它,但除非你绑定它,否则没有任何变化,这需要显式完成
  • 我添加了 GridView1.DataBind();但仍然没有出现数据网格。有什么想法吗??
  • 嗯,代码看起来不错,你在调试的时候有没有看到数据源被正确填充了数据?尝试在分配数据源之前添加GridView1.Visible = true;,我也会在下面编辑答案。您也可以发布您的 aspx 内容吗?
【解决方案2】:
GridView1.DataSource = dt; //Assigned a blank table.

“dt”似乎没有指向任何东西。

【讨论】:

  • 正如 Jakub 上面所说的。
猜你喜欢
  • 2017-08-27
  • 1970-01-01
  • 1970-01-01
  • 2019-09-03
  • 2019-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多