从TextBox更新基于表名的GridView

时间:2011-11-29 03:11:34

标签: c# asp.net sql-server

我认为我的问题很简单。

假设我的.aspx页面中有一个gridview,一个文本框和一个按钮控件。我想要做的是将“我的数据库的表名”粘贴(或键入)到文本框中,当单击该按钮时,gridview将仅显示相应表名中的所有列。 / p>

谢谢和问候

更新: 1.我忘了告诉我还需要允许在gridview中编辑,删除和选择命令。 感谢所有评论,我尝试了一些解决方案。但是我发现最实用的方法是使用DataSource(允许自动生成insert,update,delete命令)。到目前为止,基于我对Google的研究,我还没有找到任何可以真正全面教授这种方法的教程。

我的当前代码是这样的:

protected void btnFind_Click(object sender, EventArgs e)
    {
// sdsDynamic is the sql data source
// gvDynamic is the gridview
// txtTable is the textbox where the table name is contained           
SqlConnection connection = new SqlConnection(myConnectionString);
        string sqlText = "SELECT * FROM " + txtTable.Text;
        sdsDynamic.SelectCommand = sqlText;
        SqlDataAdapter adapter = new SqlDataAdapter(sqlText, connection);
        adapter.SelectCommand.CommandType = CommandType.Text;
        connection.Open();
        gvDynamic.DataSource = sdsDynamic;
        gvDynamic.DataBind();
        connection.Close();
    }

2 个答案:

答案 0 :(得分:1)

如何将按钮点击事件中的代码隐藏从选定的表名称编写到select *到数据集,然后将数据集绑定到gridview?

答案 1 :(得分:0)

以下代码块将满足您的要求:

在.aspx页面中,gridview代码可能如下所示:

<asp:GridView ID="gridViewData" runat="server">
</asp:GridView>

在代码背后的代码中可能会使用:

DataTable table = new DataTable("MyDataTable");
using (SqlConnection connection = new SqlConnection(YourDBConnectionString))
{
    string sqlText = "SELECT * FROM " + txtTableName.Text;
    SqlDataAdapter adapter = new SqlDataAdapter(sqlText, connection);
    adapter.SelectCommand.CommandType = CommandType.Text;
    connection.Open();
    adapter.Fill(table);
}
gridViewData.DataSource = table;
gridViewData.DataBind();