Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 基于ComboBox中的选定列从表中获取ID(PK)_C#_Sql_Sql Server_Wpf - Fatal编程技术网

C# 基于ComboBox中的选定列从表中获取ID(PK)

C# 基于ComboBox中的选定列从表中获取ID(PK),c#,sql,sql-server,wpf,C#,Sql,Sql Server,Wpf,我有一个状态表,其中包含以下列: 可乐 我希望这3列显示在WPF表单的组合框中。好的我将分别得到不同的可乐,可乐,可乐。如果我错了,请纠正我 现在,我想基于这些组合框在另一个表中插入一个条目 此表,STATUS_HISTORY具有以下结构,与我认为的问题无关: 来自Emp状态的ID EmpID FK来自状态更新日期的ID FK 现在,如何根据所选的组合框获取状态ID?我是否应该使用这样的查询: SELECT ID from STATUS WHERE ColA LIKE '@SelectedCol

我有一个状态表,其中包含以下列:

可乐

我希望这3列显示在WPF表单的组合框中。好的我将分别得到不同的可乐,可乐,可乐。如果我错了,请纠正我

现在,我想基于这些组合框在另一个表中插入一个条目

此表,STATUS_HISTORY具有以下结构,与我认为的问题无关:

来自Emp状态的ID EmpID FK来自状态更新日期的ID FK

现在,如何根据所选的组合框获取状态ID?我是否应该使用这样的查询:

SELECT ID from STATUS WHERE ColA LIKE '@SelectedColAValue' AND ColB LIKE '@SelectedColBValue' AND ColC LIKE '@SelectedColCValue'
ID ColA ColB ColC  
1   A1    B1   C1  
2   A1    B1   C2  
3   A1    B2   C1  
4   A1    B2   C2  
5   A1    B3   C1  
6   A1    B3   C2  
7   A2    B1   C1  
8   A2    B1   C2     
对我来说,这听起来是一种非常琐碎的方式。有没有更好的办法

更新

状态表有如下行:

SELECT ID from STATUS WHERE ColA LIKE '@SelectedColAValue' AND ColB LIKE '@SelectedColBValue' AND ColC LIKE '@SelectedColCValue'
ID ColA ColB ColC  
1   A1    B1   C1  
2   A1    B1   C2  
3   A1    B2   C1  
4   A1    B2   C2  
5   A1    B3   C1  
6   A1    B3   C2  
7   A2    B1   C1  
8   A2    B1   C2     
现在如果我在ComboBox1中选择A1,它对应于多行,以此类推。。
我希望它能进一步解释

更简单的方法是创建Status.NET对象并将其绑定到组合框。 可以将同一对象绑定到所有组合框,并显示希望在组合框中显示的值

检查、和


只需将SelectedItem ID传递给数据库

将STATUS的ID列设置为字符串,并像ColA+ColB+ColC一样生成它。它对于所有行都必须是唯一的。因此,用户从组合框中选择的值与ComboBoxA.Value+ComboBoxB.Value+ComboBoxC.Value的表达式相同。这将被PK插入状态历史记录。

为什么要在三个不同的组合框中显示相同的表行?这些值相互独立吗?不,它们不是独立的。它们就像真值表或这三列的排列!我们做到了。但通过这样做,我们将得到相同列的冗余值,为什么不呢?或者用户可以编辑状态表?如果是这样,请告诉我这种设计的目的。