Gridview不显示数据库中的值

时间:2015-07-02 09:02:39

标签: c# asp.net gridview

我试图在DataGrid中显示数据库表,但DataGrid没有显示。我只有一个文本框,在它下面我希望DataGrid显示表格。文本框正在显示,但DataGrid不显示。

<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();
        }

    }

4 个答案:

答案 0 :(得分:1)

您需要调用DataBind方法: -

dataGridView1.DataBind();

除此之外,我建议你将DAL&amp; amp; UI代码。

答案 1 :(得分:1)

dataGridView1.DataBind();

下面写dataGridView1.DataSource = dt;

答案 2 :(得分:1)

您的代码缺少{dataGridView1.DataBind();}命令。

使用DataBind()方法将数据源中的数据绑定到GridView控件。

答案 3 :(得分: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();
        }