使用if语句将组合框值与两个文本框值进行比较

时间:2015-05-03 21:23:03

标签: c# winforms if-statement combobox operators

我正在使用C#winforms 我有一个名为cmbExport的组合框和两个文本框txtDateSendtxtSendNum的表单 组合框从存储过程GET_ALL_EXPORT_WITHNULL

获取其数据
cmbExport.DataSource = cmp.GET_ALL_EXPORT_WITHNULL(); 
cmbExport.DisplayMember = "side";   
cmbExport.ValueMember = "ID_EXPORT";  
cmbExport.SelectedValue = "6";

当用户没有从组合框中选择某些值并且其中一个文本框为空时,会出现一个meesage框

我尝试了这段代码但是没有用:

int x = Convert.ToInt32(cmbExport.SelectedValue); //Its already integer but the code didn't accept int x = cmbExport.SelectedValue; ???

string ds = txtDateSend.Text;
string sn = txtSendNum.Text;

if ((x != 6 || x != 42 || x != 1042) && string.IsNullOrEmpty(sn))
    {
       MessageBox.Show("you should enter a send number");
       return;
    }
       else if ((x != 6 || x != 42 || x != 1042) && string.IsNullOrEmpty(ds))
    {
       MessageBox.Show("you should enter a date send);
       return;
    } 

谢谢

3 个答案:

答案 0 :(得分:2)

由于642不能同时包含任何数字,每个数字都不同于642,因此您的{{ 1}}语句始终计算结果为true。我认为您打算在那里使用if而不是&&

||

答案 1 :(得分:2)

您可以通过创建列表来改善代码的意图,例如:

var dependsOnSendNumber = new [] {6, 42, 1042};

然后只需使用Linq查询:

if (dependsOnSendNumber.Contains(x) && string.IsNullOrEmpty(sn))

这提高了可读性,您可以根据某些规则动态创建dependsOnSendNumber列表。因此,如果在任何时候创建了遵循相同规则的新选项,您唯一需要做的就是相应地设置它以包含在列表中。

答案 2 :(得分:0)

您无法使用int x = cmbExport.SelectedValue因为mbExport.SelectedValue返回String