gpt4 book ai didi

c# - 并非所有代码路径都返回值-错误

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

如果数据存在,我有以下代码要读取。我想返回true或false,但是C#编译器说:“并非所有代码路径都返回值”,并且在方法名称ReadDV上显示红色错误行。

代码是:

public bool ReadDV(string ReadCommand)
{
try
{
SqlConnection SCO = ConnectionClass.getconnection();
SqlCommand delCmd = new SqlCommand(ReadCommand, SCO);
if (SCO.State != ConnectionState.Open)
SCO.Open();
SqlDataReader r = delCmd.ExecuteReader();

if (r.Read())
{
if (SCO.State != ConnectionState.Closed)
SCO.Close();

r.Close();
return true;
}
}
catch (Exception ex)
{
return false;
}
}


ConnectionClass.getconnection()代码是用于返回连接字符串的方法的一部分,并且工作正常。

我将添加代码的第二部分以调用此方法:read为null时不起作用

string RUSERSSV = @"select * from USERSSV  where Users = ........;
DB db = new DB(); // calling method

if (comboBox1.Text != "")
{
if (db.ReadDV(RUSERSSV)==true) // this is the mention part
{
string IUSERSSV = @"update USERSSV set Users = // insert fired if read is true
db.insert(IUSERSSV);
Save.Form(this);
}
else
{
string IUSERSSV = @"insert into USERSSV // update fired if read false
db.insert(IUSERSSV);
Save.Form(this);
}

最佳答案

您在if中有一个可能执行或可能不执行的return语句,您应该有一个必须执行的return语句。如果无条件执行该返回,则将catch置于catch之后可能会消除该错误。您可以使用bool变量来存储要返回并返回该变量的值。

bool success = false;
try
{

SqlConnection SCO = ConnectionClass.getconnection();
SqlCommand delCmd = new SqlCommand(ReadCommand, SCO);
if (SCO.State != ConnectionState.Open) SCO.Open();
SqlDataReader r = delCmd.ExecuteReader();

if (r.Read())
{
if (SCO.State != ConnectionState.Closed) SCO.Close();
r.Close();
success = true;
}
}
catch (Exception ex)
{
return false;
}
return success;

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

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