ULN.Text is null, that's why you're getting that error. You need to add defaults to your parameters, or build your SQL query at runtime. I suggest the null-resolution operator rather than if statements.
I also suggest the "using" keyword to ensure proper disposal and avoid memory leaks.
var ConnectionString = "Data Source=DESKTOP-411ATJG\\SQLEXPRESS; Initial Catalog=CarRental; Integrated Security=True";
var SQL = "Update Customers SET LastName=@LastName,phone=@phone,Address=@Address where CustID=@CustID";
using(SqlConnection conn = new SqlConnection(ConnectionString)){
using(SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = SQL;
cmd.Parameters.Add("@CustID", SqlDbType.Int).Value =
Convert.ToInt32(cust.ToString());
cmd.Parameters.Add("@LastName", SqlDbType.VarChar).Value = ULN.Text ?? string.Empty;
cmd.Parameters.Add("@Address", SqlDbType.VarChar).Value = UAddress.Text ?? string.Empty;
cmd.Parameters.Add("@phone", SqlDbType.Int).Value = UPhone.Text != null ? Convert.ToInt32(UPhone.Text.ToString()) : 0;
conn.Open();
cmd.ExecuteNonQuery();
}
}