如何在 C# 中创建主要细节组合框?
how to create master detail combobox in C#?
我有一个 excel sheet test.xlsx
,两个 sheet
Sheet 名称:Product1
具有以下数据:
ID ParentID Title
1 0 P1_1
2 0 P1_2
Sheet 名称:Product2
具有以下数据:
ID ParentID Title
1 1 P2_1
2 1 P2_2
3 1 P2_3
4 1 P2_4
5 2 P2_5
6 2 P2_6
在 asp net ( C# ) 中的 WindowsFormsApplication 中调用两个 sheets 作为 :
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\test.xlsx" + @";Extended Properties=""Excel 12.0 Xml;HDR=YES;IMEX=1;ImportMixedTypes=Text;TypeGuessRows=0""";
/////////////////////////////////////////////////////
OleDbCommand command1 = new OleDbCommand
(
"SELECT ID ,ParentID ,Title " +
" FROM [Product1$]", conn
);
DataSet ds1 = new DataSet();
OleDbDataAdapter adaptor1 = new OleDbDataAdapter(command1);
adaptor1.Fill(ds1);
Product1.DataSource = ds1.Tables[0];
Product1.ValueMember = "ID";
Product1.DisplayMember = "Title";
/////////////////////////////////////////////////////
OleDbCommand command2 = new OleDbCommand
(
"SELECT ID ,ParentID ,Title " +
" FROM [Product2$] " , conn
);
DataSet ds2 = new DataSet();
OleDbDataAdapter adaptor2 = new OleDbDataAdapter(command2);
adaptor2.Fill(ds2);
Product2.DataSource = ds2.Tables[0];
Product2.ValueMember = "ID";
Product2.DisplayMember = "Title";
我需要知道如何在两个组合框中创建主从(父子)关系,以便当第一个组合框值更改时,第二个组合框值也反映由 ParentID 字段更改..
您可以通过选择当前选定值从 combobox1 中选择项目时触发事件来执行此操作。根据所选值从 sheet2 获取数据并填充第二个组合框。
<asp:ListBox ID="Product1" OnSelectedIndexChanged="Product1_SelectedIndexChanged" runat="server" AutoPostBack="true"></asp:ListBox>
CS 码
int Id = 0;
int.TryParse(Product1.SelectedValue, out Id);
现在基于这个 id 从 sheet2 像这样获取数据
OleDbCommand command2 = new OleDbCommand
(
"SELECT ID ,ParentID ,Title " +
"FROM [Product2$] Where ParentId=@parentID" , conn
);
command2.Parameters.AddWithValue("@parentID", Id);
其余用于绑定的代码将相同。
我有一个 excel sheet test.xlsx
,两个 sheet
Sheet 名称:Product1
具有以下数据:
ID ParentID Title
1 0 P1_1
2 0 P1_2
Sheet 名称:Product2
具有以下数据:
ID ParentID Title
1 1 P2_1
2 1 P2_2
3 1 P2_3
4 1 P2_4
5 2 P2_5
6 2 P2_6
在 asp net ( C# ) 中的 WindowsFormsApplication 中调用两个 sheets 作为 :
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\test.xlsx" + @";Extended Properties=""Excel 12.0 Xml;HDR=YES;IMEX=1;ImportMixedTypes=Text;TypeGuessRows=0""";
/////////////////////////////////////////////////////
OleDbCommand command1 = new OleDbCommand
(
"SELECT ID ,ParentID ,Title " +
" FROM [Product1$]", conn
);
DataSet ds1 = new DataSet();
OleDbDataAdapter adaptor1 = new OleDbDataAdapter(command1);
adaptor1.Fill(ds1);
Product1.DataSource = ds1.Tables[0];
Product1.ValueMember = "ID";
Product1.DisplayMember = "Title";
/////////////////////////////////////////////////////
OleDbCommand command2 = new OleDbCommand
(
"SELECT ID ,ParentID ,Title " +
" FROM [Product2$] " , conn
);
DataSet ds2 = new DataSet();
OleDbDataAdapter adaptor2 = new OleDbDataAdapter(command2);
adaptor2.Fill(ds2);
Product2.DataSource = ds2.Tables[0];
Product2.ValueMember = "ID";
Product2.DisplayMember = "Title";
我需要知道如何在两个组合框中创建主从(父子)关系,以便当第一个组合框值更改时,第二个组合框值也反映由 ParentID 字段更改..
您可以通过选择当前选定值从 combobox1 中选择项目时触发事件来执行此操作。根据所选值从 sheet2 获取数据并填充第二个组合框。
<asp:ListBox ID="Product1" OnSelectedIndexChanged="Product1_SelectedIndexChanged" runat="server" AutoPostBack="true"></asp:ListBox>
CS 码
int Id = 0;
int.TryParse(Product1.SelectedValue, out Id);
现在基于这个 id 从 sheet2 像这样获取数据
OleDbCommand command2 = new OleDbCommand
(
"SELECT ID ,ParentID ,Title " +
"FROM [Product2$] Where ParentId=@parentID" , conn
);
command2.Parameters.AddWithValue("@parentID", Id);
其余用于绑定的代码将相同。