Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# GridView未出现在网页上_C#_Asp.net_Gridview_Webforms_Oledb - Fatal编程技术网

C# GridView未出现在网页上

C# GridView未出现在网页上,c#,asp.net,gridview,webforms,oledb,C#,Asp.net,Gridview,Webforms,Oledb,我正在构建一个web表单。我有一个搜索字段和一个搜索按钮。我正在连接MS Access数据库以检索并在网格视图上显示结果。但是我的网格视图没有出现在网页上 谁能帮我找出我错在哪里 这是我的aspx.cs代码: protected void Button1_Click(object sender, EventArgs e) { OleDbConnection con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data

我正在构建一个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;
    }

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

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

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

正如上面Jakub所说,他的dt不是仍然是空的吗?或者DBAdapter.Filldt会改变它吗?是的,db adapter会用数据填充它,但除非您绑定它,否则什么都不会改变,这需要明确地完成。我添加了GridView1.DataBind;但数据网格仍然没有出现。你知道吗?嗯,代码看起来不错,你在调试时看到数据源正确地填充了数据吗?尝试添加GridView1.Visible=true;在分配数据源之前,我还将编辑下面的答案。您也可以发布您的aspx内容吗?请注意,您非常容易受到SQL注入攻击。你应该从一开始就养成使用的习惯。谢谢你的提示。我在调查这件事。
GridView1.Visible = true;
GridView1.DataSource = dt;
GridView1.DataBind();