2015-07-02 4 views
0

Я пытаюсь отобразить таблицу базы данных в DataGrid, но DataGrid не отображается. Все, что у меня есть, это текстовое поле, и под ним я хочу, чтобы DataGrid отображал таблицу. Текстовое поле отображается, но DataGrid - нет.Gridview не отображает значения из базы данных

<table> 
    <tbody> 
     <tr> 
      <td class="Header">Public Holiday Date</td> 
      <td> 
      <asp:TextBox runat="server" ID="txtDate" rel="datepicker" ></asp:TextBox> 
      </td> 
     </tr> 
     <tr> 
      <td> 
      <asp:DataGrid runat="server" id="dataGridView1" AutoGenerateColumns="true"></asp:DataGrid>  
      </td> 
     </tr> 
     </tbody> 
    </table> 

Код для получения данных из базы данных:

private DataSet GetBankHolidays() 
    { 
     DataSet ds = new DataSet(); 

     string sql = "proc_GetAllCustomers"; 

     string query = "SELECT BankHol FROM bankholidays"; 

     DataTable dt = new DataTable(); 
     using (MySql.Data.MySqlClient.MySqlDataAdapter adapter = new MySql.Data.MySqlClient.MySqlDataAdapter(sql, DataUtils.ConnectionStrings["TAT"])) 
     { 
      adapter.SelectCommand.CommandType = CommandType.Text; 
      adapter.SelectCommand.CommandText = query; 
      adapter.Fill(dt); 
      ds.Tables.Add(dt); 
      dataGridView1.DataSource = dt; 
      dataGridView1.DataBind(); 
     } 
     return ds; 
    } 

И я звоню этот метод загрузки страницы:

protected void Page_Load(object sender, EventArgs e) 
    { 
if (!Page.IsPostBack) 
     { 
      GetBankHolidays(); 
     } 

    } 

ответ

1

Вам нужно вызвать метод DataBind : -

dataGridView1.DataBind(); 

Apart из этого я бы предложил вам разделить код пользовательского интерфейса DAL &.

+0

который дает ошибку DataGrid с id 'dataGridView1', не мог автоматизировать сгенерировать любые столбцы из выбранного источника данных. – user123456789

+0

попробуйте установить свойство 'AutoGenerateColumns' на' true' – TheVillageIdiot

+0

. Аналогичная ошибка возникает – user123456789

1

записи dataGridView1.DataBind(); ниже dataGridView1.DataSource = dt;

+0

, которая дает ошибку DataGrid с идентификатором 'dataGridView1' не может автоматически генерировать любые столбцы из выбранного источника данных. – user123456789

+0

Установите свойство Autogeneratecolumn gridview в true в коде aspx. – Imad

+0

ошибка возникает – user123456789

1

Ваш код не хватает {dataGridView1.DataBind();} команды.

Используйте метод DataBind() для привязки данных от источника данных к элементу управления GridView.

0

В вашей кодирования вы используете stored procedure, но у вас есть упомянутый тип команды как текст

adapter.SelectCommand.CommandType = CommandType.StoredProcedure; 

Вы должны связать DataSource с DataGrid

dataGridView1.DataBind(); 

Окончательный код

using (MySql.Data.MySqlClient.MySqlDataAdapter adapter = new MySql.Data.MySqlClient.MySqlDataAdapter(sql, DataUtils.ConnectionStrings["TAT"])) 
     { 
      adapter.SelectCommand.CommandType = CommandType.StoredProcedure; 
      adapter.SelectCommand.CommandText = query; 
      adapter.Fill(dt); 
      ds.Tables.Add(dt); 
      dataGridView1.DataSource = dt; 
      dataGridView1.DataBind(); 
     } 
Смежные вопросы