gpt4 book ai didi

c# - 检查数组 C# 中是否存在 int

转载 作者:太空宇宙 更新时间:2023-11-03 12:51:15 24 4
gpt4 key购买 nike

我不知道这样做是否正确,但我正在尝试从数据库表中获取所有工作编号,并检查用户输入的内容是否在数据库中。我通过将所有数据发送到一个数组并检查它是否存在于其中来做到这一点。但是我相信会有更简单的方法。这是我到目前为止的代码:

public class IDNo
{
public int Col1 { get; set; }
}

private void button3_Click(object sender, EventArgs e)
{
String check = "SELECT * FROM Job";

using (SqlConnection con = new SqlConnection(str))
{
using (SqlCommand cmd = new SqlCommand(check, con))
{
con.Open();
var listOfId = new List<IDNo>();
using (var reader = cmd.ExecuteReader())
{
while (reader.Read())
{
var id = new IDNo();
id.Col1 = Convert.ToInt32(reader["JobNo"]);
listOfId.Add(id);
}
}

string JN = textBox10.Text;
int JoNo = Int32.Parse(JN);

if (JoNo == IDNo)
{
MessageBox.Show("No job number found, please try again!");
}
else
{
DO SOMETHING HERE WHEN CORRECT
}
}
}
}

我只是想要一些关于如何检查用户输入的数字是否存在于数组中的帮助。

最佳答案

应该是数据库引擎来回答您的问题,而不是简单地返回您所有的工作记录并强制您的代码对您的记录中的匹配数据进行可能的、非常冗长的搜索...

 int JoNo;
if(!Int32.TryParse(textBox10.Text, out JoNo))
{
MessageBox.Show("Not a valid number");
return;
}
String check = @"IF EXISTS( SELECT 1 FROM Job WHERE JobNo=@num)
SELECT 1 ELSE SELECT 0";
using (SqlConnection con = new SqlConnection(str))
using (SqlCommand cmd = new SqlCommand(check, con))
{
con.Open();
cmd.Parameters.Add("@num", SqlDbType.Int).Value = JoNo;
int result = (int)cmd.ExecuteScalar();
if(result == 0)
MessageBox.Show("No job number found, please try again!");
else
.....
}

首先,您测试用户输入是否为有效数字而不抛出异常 (Int32.TryParse),但只是将错误告知您的用户,然后您构建一个 IF EXISTS查询,因为您只是想知道工作编号是否存在,您不需要检索该值。最后,使用 ExecuteScalar 完成执行。因为您只对获取单个值 1(对于现有的 JobNo 或 0 对于不存在的 JobNo)感兴趣。

关于c# - 检查数组 C# 中是否存在 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35453469/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com