gpt4 book ai didi

c# - 错误 : Not All Code Paths Return A value?

转载 作者:行者123 更新时间:2023-11-30 13:21:50 25 4
gpt4 key购买 nike

我收到此错误(并非所有代码路径都返回值)。我想在我的数据库中插入具有唯一键约束的数据。但是当我在我的代码中添加这个时,我的方法给了我这个错误。

这是我的代码

  public string Insert()
{

SqlConnection Conn = new SqlConnection(@"Data Source=ZARAK\SQLEXPRESS;Initial Catalog=ProjectDAL;integrated security=true");


try
{
Conn.Open();
SqlCommand cmd = new SqlCommand("Insert INTO tbl_User(Name,Email,Password) VALUES ('" + name + "','" + email + "','" + password + "')", Conn);


int restl = cmd.ExecuteNonQuery();
//temp = true;
return "Record Inserted successfully!";
}
catch (SqlException ex)
{
if (ex.Number == 2627)
{
return "Record Already Exists";
}
}
finally
{
Conn.Close();
}
}

最佳答案

你的问题在这里:

catch (SqlException ex)
{
if (ex.Number == 2627)
{
return "Record Already Exists";
}
// **
}

如果您查看应用程序的代码路径,每个 if 还会隐式添加一个 else。在这种情况下,else 不包含 return 语句,因此会出现错误。

还有异常(exception)...

异常是用来处理异常情况的。 catch 意味着 适本地处理它 是软件开发人员之间的隐含协议(protocol)。

处理它的一种方法是通知用户该记录已经存在(我猜你就是这样做的)。如果发生另一件事,将错误通知用户并不总是有效的;您可能只是想在几秒钟后重试(死锁)或做其他事情。通常你在更高层次上处理这样的代码,并让异常波及。

因此,我无法告诉您 ** 的代码需要是什么;您需要根据自己想要实现的目标自行决定。

例如:

catch (SqlException ex)
{
if (ex.Number == 2627)
{
return "Record Already Exists"; // user needs to do something
}

// We don't want to handle the rest here:
throw;
}

关于c# - 错误 : Not All Code Paths Return A value?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37651563/

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