使用 if 语句将组合框值与两个文本框值进行比较
using if statement to compare a combo box value with two text boxes value
我正在使用 C# winforms
我有一个带有名为 cmbExport
的组合框和两个文本框 txtDateSend
和 txtSendNum
的表单
组合框从存储过程中获取数据 GET_ALL_EXPORT_WITHNULL
cmbExport.DataSource = cmp.GET_ALL_EXPORT_WITHNULL();
cmbExport.DisplayMember = "side";
cmbExport.ValueMember = "ID_EXPORT";
cmbExport.SelectedValue = "6";
当用户未从组合框中选择某些值并且其中一个文本框为空时,会出现一个消息框
我试过这段代码,但没有成功:
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;
}
谢谢
因为没有数字可以同时是 6
和 42
,所以 每个 数字都不同于 6
或 42
,因此您的 if
语句 always 计算结果为真。我认为你打算在那里使用 &&
而不是 ||
:
if (x != 6 && x != 42 && x != 1042 && string.IsNullOrEmpty(sn)
您可以通过创建列表来提高代码的意图揭示,例如:
var dependsOnSendNumber = new [] {6, 42, 1042};
然后简单地使用 Linq 查询:
if (dependsOnSendNumber.Contains(x) && string.IsNullOrEmpty(sn))
这提高了可读性,您可以根据某些规则动态创建 dependsOnSendNumber 列表。因此,如果任何时候创建了一个遵循相同规则的新选项,您唯一需要做的就是将其相应地设置为包含在列表中。
您不能使用 int x = cmbExport.SelectedValue
因为 mbExport.SelectedValue
return String
我正在使用 C# winforms
我有一个带有名为 cmbExport
的组合框和两个文本框 txtDateSend
和 txtSendNum
的表单
组合框从存储过程中获取数据 GET_ALL_EXPORT_WITHNULL
cmbExport.DataSource = cmp.GET_ALL_EXPORT_WITHNULL();
cmbExport.DisplayMember = "side";
cmbExport.ValueMember = "ID_EXPORT";
cmbExport.SelectedValue = "6";
当用户未从组合框中选择某些值并且其中一个文本框为空时,会出现一个消息框
我试过这段代码,但没有成功:
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;
}
谢谢
因为没有数字可以同时是 6
和 42
,所以 每个 数字都不同于 6
或 42
,因此您的 if
语句 always 计算结果为真。我认为你打算在那里使用 &&
而不是 ||
:
if (x != 6 && x != 42 && x != 1042 && string.IsNullOrEmpty(sn)
您可以通过创建列表来提高代码的意图揭示,例如:
var dependsOnSendNumber = new [] {6, 42, 1042};
然后简单地使用 Linq 查询:
if (dependsOnSendNumber.Contains(x) && string.IsNullOrEmpty(sn))
这提高了可读性,您可以根据某些规则动态创建 dependsOnSendNumber 列表。因此,如果任何时候创建了一个遵循相同规则的新选项,您唯一需要做的就是将其相应地设置为包含在列表中。
您不能使用 int x = cmbExport.SelectedValue
因为 mbExport.SelectedValue
return String