下拉列表执行查询并在gridview中显示它

时间:2013-11-26 12:37:36

标签: c# asp.net gridview drop-down-menu

我有以下情况,我有一个数据库表填充的下拉列表,其中包含以下列“id”,“name”和“query”,查询列记录是sql查询“select yada yada yada”,显示的列是“名称”。

sample from db

此下拉列表中包含一个表单标记,代码如下图所示:

dropdown aspx code

然后我有想要填充的gridview,这是在另一个asp内容部分

<asp:Content ID="rightcontentdown" ContentPlaceHolderID="rightcontentdown" Runat="Server">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true"></asp:GridView></asp:Content>

因为它表示gridview必须是一个表格标签,这是假的,因为在我的另一页面我有一个表格标签内的按钮(执行查询),他们在另一个aspcontent部分填充gridview表格标签(我的设置完全相同)

现在我的问题/问题,正如我在那里提到的,我在db表列记录中有实际的查询字符串,我希望能够在下拉列表中选择名称,执行相应的查询然后显示查询结果在gridview中(我知道我必须使用数据绑定)

这甚至可能吗?我试图这样做的原因是因为我或IT部门的任何人希望将来能够管理用户看到的内容而无需在每次有人需要新查询时使用Visual Studio。想要编辑现有的一个,这是我的另一个与此问题有关的问题one of my threads here

1 个答案:

答案 0 :(得分:1)

SelectIndexChanged事件中的内容如何?假设您的下拉列表在文本字段中填充了“nome”并且这些是唯一名称,这将获取存储在数据库中的查询,然后您可以将该查询传递给另一个方法来执行查找并填充您的gridview。如果我不完全理解你想要做什么,请告诉我。

SqlConnection Connection = null;
SqlCommand Command = null;

string ConnectionString = ConfigurationManager.ConnectionStrings["DB_testeConnectionString"].ConnectionString;
string CommandText = "SELECT rotina "
                   + "FROM rotinas_comercial "
                   + "WHERE nome = @someValue";
Connection = new SqlConnection(ConnectionString);

Connection.Open();
Command = new SqlCommand(CommandText, Connection);
Command.Parameters.Add(new SqlParameter("@someValue", DropDownList1.SelectedItem.Text));
var results = Command.ExecuteScalar();

Command.Dispose();
Connection.Close();