C# ';服务1.插入供应商(供应商)和#x27;:并非所有代码路径都返回值

C# ';服务1.插入供应商(供应商)和#x27;:并非所有代码路径都返回值,c#,path,return,C#,Path,Return,如果发生异常,您的方法将不返回而返回 添加类似于return-1的内容结尾处: public int InsertSupplier(Supplier supplier) { try { comm.CommandText = "INSERT INTO SupplierTable(@sup_id, @Supplier_Name, @Address, @City, @Phone, @Email, @TIN)"; comm.Parameters.AddWi

如果发生异常,您的方法将不返回
而返回

添加类似于
return-1的内容结尾处:

public int InsertSupplier(Supplier supplier)
{
    try
    {
        comm.CommandText = "INSERT INTO SupplierTable(@sup_id, @Supplier_Name, @Address, @City, @Phone, @Email, @TIN)";
        comm.Parameters.AddWithValue("sup_id", supplier.id);
        comm.Parameters.AddWithValue("Supplier_Name", supplier.NameSupplier);
        comm.Parameters.AddWithValue("Address", supplier.Address);
        comm.Parameters.AddWithValue("City", supplier.City);
        comm.Parameters.AddWithValue("Phone", supplier.Phone);
        comm.Parameters.AddWithValue("Email", supplier.Email);
        comm.Parameters.AddWithValue("TIN", supplier.TIN);

        comm.CommandType = CommandType.Text;
        conn.Open();

        return comm.ExecuteNonQuery();


    }
    catch (Exception)
    {

    }

    finally
    {
        if (conn != null)
        {
            conn.Close();
        }
    }

}

首先,如果您没有在catch块中执行任何操作,那么就根本不要编写catch。第二,如果代码进入catch块,您希望返回什么值?第三:在SqlConnection周围应用try/finally,而不是verbose try/finally,并且不要保留全局连接对象
public int InsertSupplier(Supplier supplier)
{
    try
    {
        // your code here
    }
    catch (Exception)
    {

    }    
    finally
    {
        if (conn != null)
        {
            conn.Close();
        }
    }

    return -1; // or change this to more proper value
}