我在asp.net网页中有一个下拉列表DDL1
,它是与特定数据库中所有表的“产品”列的数据绑定。现在我的问题是,如果我从DDL1
中选择一个产品名称,那么具有该产品名称的客户应绑定另一个DDL2
的下拉列表。我每个客户都有桌子。我正在根据列的名称获取客户名称,但我希望根据列值创建客户名称。查询/存储过程和代码是什么? (Asp.Net,Sql-2014,C#)。如何根据列值获取表名?
回答
如果我理解正确的,你有7台用类似这样的模式:
Sno int,
Product varchar,
Picture varchar
首先您需要用所有可能的产品的名称一个DropDownList。 然后你选择这个DropDownList的一个项目,例如:'Pen',你需要知道哪些表有一个Product ='Pen'。
一个可能的解决方案是构建一个函数,它过滤每个表并填充第二个DropDownList。
string [] table_name = {"Table1","Table2",...};
private void FillSecondDDL(string product_name)
{
DDL2.Items.Clear();
foreach(string tname in table_name)
{
if (HasThisProduct(tname, product_name)
{
DDL2.Items.Add(tname);
}
}
}
private bool HasThisProduct(string table_name, string product_name)
{
string cmd = string.Format("select Sno from {0} where Product='{1}'"
, table_name
, product_name);
using (SqlConnection connection = new SqlConnection(connectionString))
{
DataTable table;
SqlDataAdapter adapter = new SqlDataAdapter();
adp.SelectCommand = new SqlCommand(cmd, connection);
adp.Fill(table);
return table.Rows.Count > 0 ? true : false;
}
}
只是给你一个主意。
我有具有相同列名的7个表(AG)(Sno,Product,Picture)。当页面加载的DDL1包含来自所有表格的“产品”值时,当我从DDL1中选择一个值时,那么在具有该产品的A-G表格中应该出现DDL2,没有该产品的人员不应该进入DDL2。我想检索表名,我需要为此查询/ StoredProcedure。 –
我很抱歉,但我真的不明白你想做什么。你能重新表达这个问题吗? – McNets
我在数据库中有7个不同的表格(A-G)。每个表具有相同的列名(Sno,Product,Picture)。当我的页面加载时,将只有一个DDL1和所有表(A-G)中的“产品”名称。还有一些常见的产品名称。 EX。产品“笔”可能包含表B,表C,表F.当我在DDL1中选择“笔”时,我想用表名B,C,F来数据绑定我的DDL2。怎么可能。我想要一个查询检索表名,基于列值而不是列名。 –
有很多不同的方法来实现这一点。这里是一个:
<body>
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource1" DataTextField="Title" DataValueField="Id" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" AutoPostBack="True">
</asp:DropDownList>
<asp:DropDownList ID="DropDownList2" runat="server" DataSourceID="SqlDataSource2" DataTextField="Name" DataValueField="Id" AutoPostBack="True">
</asp:DropDownList>
</div>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="[YOUR CONNECTION STRING]" ProviderName="System.Data.SqlClient" SelectCommand="SELECT [Id], [Title] FROM [Products]"></asp:SqlDataSource>
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="[YOUR CONNECTION STRING]" ProviderName="System.Data.SqlClient" SelectCommand="SELECT * FROM [Customers] WHERE ([ProductId] = @ProductId)">
<SelectParameters>
<asp:ControlParameter ControlID="DropDownList1" Name="ProductId" PropertyName="SelectedValue" Type="Int32" DefaultValue="1" />
</SelectParameters>
</asp:SqlDataSource>
</form>
</body>
你所需要的唯一的C#代码是这样的:
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
this.DropDownList2.DataBind();
}
- 1. 根据列名和值获取表名称
- 2. 如何根据onchange事件的序列ID名称获取值?
- 3. 如何根据值获取列名?不可能?
- 4. 根据另一列值获取列值
- 5. 根据列名从另一个表中获取默认值
- 6. 如何根据列表中的值获取作为字典值的列表?
- 7. 根据列名获取SQL列索引
- 8. 根据列名获取数据
- 9. 如何根据多列的特定值获取列的COUNT值?
- 10. 根据另一列的值获取值
- 11. 数据列表如何获取所选名称而不是值
- 12. 如何获取表列值?
- 13. SSRS - 如何按列名获取列值
- 14. 如何根据jquery中的值获取文本框名称
- 15. 如何根据数值获取数字的名称?
- 16. 如何根据JavaScript中的值获取JSON字段的名称?
- 17. 如何根据选定的值获取数据以获取excel?
- 18. 根据选定的下拉列表值重新获取数据
- 19. 如何根据ASP.net中的列名获取ListItem?
- 20. 根据域名获取Cookie
- 21. 根据列名计算值
- 22. 根据列名粘贴值
- 23. Ruby:如何根据类名获取类,以及如何根据字段名获取对象的字段?
- 24. 根据位置获取活动列表
- 25. 根据条件从表中获取列
- 26. 如何根据AJAX.BeginForm'onsuccess的名称获取表单或div
- 27. 如何根据定义变量的值定义列表名称
- 28. 如何根据displayindex获取列表视图的列标题列表?
- 29. 如何根据外键从参考表中获取值?
- 30. 根据从文本文件中获取的值创建列表。
显示你的表在这里可以帮助回答你的问题。 – bogzy
我有7个表(A-G)具有相同的列名称(Sno,Product,Picture)。当页面加载的DDL1包含来自所有表格的“产品”值时,当我从DDL1中选择一个值时,那么在具有该产品的A-G表格中应该出现DDL2,没有该产品的人员不应该进入DDL2。我想检索表名,我需要为此查询/ StoredProcedure。 –
我在数据库中有7个不同的表格(A-G)。每个表具有相同的列名(Sno,Product,Picture)。当我的页面加载时,将只有一个DDL1和所有表(A-G)中的“产品”名称。还有一些常见的产品名称。 EX。产品“笔”可能包含表B,表C,表F.当我在DDL1中选择“笔”时,我想用表名B,C,F来数据绑定我的DDL2。怎么可能。我想要一个查询检索表名,基于列值而不是列名。 –