gpt4 book ai didi

c# - 并非所有代码路径都返回一个值 sql

转载 作者:太空宇宙 更新时间:2023-11-03 20:07:32 25 4
gpt4 key购买 nike

Error :'WinWithStudentDatabase.Broker.FillComboBox()': not all code paths return a value.

我知道该错误的含义,但无法弄清楚为什么它不起作用:/...这是我的代码:

 public List<Person> FillComboBox()
{
List<Person> personsList = new List<Person>();
try
{
string sql = "SELECT * FROM Tperson";
cmd = new SqlCommand(sql, connection);
connection.Open();

System.Data.SqlClient.SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read() != null)
{
Person p = new Person();

p.Id = Convert.ToInt32(reader["ID"].ToString());
p.FirstName = reader["FirstName"].ToString();
p.LastName = reader["LastName"].ToString();

personsList.Add(p);
}
return personsList;
}
catch (Exception eX)
{
MessageBox.Show(eX.Message);
}
finally
{
if (connection != null)
{
connection.Close();
}
}
}

有什么建议吗?我只是想从我的数据库中读取数据并填充组合框,仅此而已..

最佳答案

您已声明函数返回 List<Person>但是 catch block 没有返回任何东西就退出了

    catch (Exception eX)
{
MessageBox.Show(eX.Message);
return null;

// or return an empty list if more appropriate
// return new List<Person>();
}

编译器看到您编写了一个 catch block ,这意味着您希望在此处处理异常。但是当 catch block 退出时应该有一个返回值。
很难说在这些情况下返回的正确方法是什么。我个人更喜欢返回一个空对象并在调用代码中对此进行测试。 (我避免返回在方法开始时声明的最终部分填充的列表)

关于c# - 并非所有代码路径都返回一个值 sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22113679/

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