2014-10-06 2 views
0

У меня есть GridView. Мое приложение подключается к базе данных MySql, собирает данные и отображает их в GridView, но это не так. Когда я делаю это так же в приложении Windows Forms, он заполняет DataGridView, и проблем нет. Но когда я запускаю приложение ASP.NET в любом браузере - он показывает ярлык и кнопку, но когда я нажимаю кнопку «Заполнить сетку» - она ​​не отображает GridView. Я скопировал MySql.Data.dll и System.Data.dll в каталог «bin». Ошибка компиляции отсутствует. Строка подключения в порядке.Приложение ASP.NET не отображает заполненный GridView после сбора данных из базы данных MySql

Это мое приложение 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> 
+1

попытайтесь отладить свой код с помощью точек останова, которые ваш читатель имеет некоторые значения или нет? –

ответ

1

Он не похож на обработчик щелчка фактически присвоенного для события нажатия кнопки. Таким образом, кнопка вызывает обратную связь, но не вызывает обработчик. (. Держу пари, если вы отлаживать текущий код, который вы увидите, что метод btnFillData_Click никогда даже не вызывается)

Попробуйте назначить его в явном виде:

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

Я такой любитель ... Я должен был это заметить. Должен ли я удалить свой вопрос? –

+0

@BlackCamel: Совсем нет, это вполне разумный вопрос, который потенциально может помочь другим людям в будущем. – David

1

Вы не назначить функцию кнопки на HTML-код, вам нужно добавить OnClick="btnFillData_Click" на кнопку Tag

Смежные вопросы