我试图在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();
}
}
答案 0 :(得分:1)
答案 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();
}