从MySql数据库收集数据后,我的ASP.NET应用程序未显示填充的GridView

时间:2014-10-06 12:01:21

标签: c# mysql asp.net .net gridview

我有一个GridView。我的应用程序连接到MySql数据库,收集数据,它应该在GridView中显示,但它不会。当我在Windows窗体应用程序中以相同的方式执行它 - 它填充DataGridView并没有问题。但是当我在任何浏览器中运行我的ASP.NET应用程序时 - 它显示标签和按钮,但是当我单击“填充网格”按钮时 - 它不会显示GridView。我将MySql.Data.dll和System.Data.dll复制到“bin”目录。没有编译错误。连接字符串没问题。

这是我的ASP.NET应用程序:

<%@ Page Language="C#" %>
<%@ Import Namespace = "MySql.Data.MySqlClient" %>
<%@ Assembly Name = "MySql.Data" %>
<%@ Import Namespace = "System.Data" %>
<%@ Assembly Name = "System.Data" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    protected void btnFillData_Click(object sender, EventArgs e)
    {
        MySqlConnection conn = new MySqlConnection("Server=127.0.0.1;Database=autolot;Uid=root;Pwd=pass;");
        conn.Open();
        MySqlCommand cmd = new MySqlCommand("select * from inventory;", conn);
        MySqlDataReader dr = cmd.ExecuteReader();
        DataTable dt = new DataTable();
        dt.Load(dr);
        conn.Close();
        carsGridView.DataSource = dt;
        carsGridView.DataBind();
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Hello World!</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="lblInfo" runat="server" 
            Text="Click on the button to fill the grid">
        </asp:Label>
        <br />
        <br />
        <asp:GridView ID="carsGridView" runat="server">
        </asp:GridView>
        <br />
        <asp:Button ID="btnFillData" runat="server" Text="Fill grid" />    
    </div>
    </form>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

点击处理程序实际上似乎已分配到按钮的点击事件。因此按钮导致回发,但不调用处理程序。 (我敢打赌,如果你调试当前代码,你会发现永远不会调用btnFillData_Click方法。)

尝试明确指定:

<asp:Button ID="btnFillData" runat="server" Text="Fill grid" OnClick="btnFillData_Click" />

答案 1 :(得分:1)

您没有将该功能分配给HTML代码上的按钮,您需要将OnClick="btnFillData_Click"添加到按钮标签